From 7160e11395168723f6692b140f35a943267731cd Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 24 Dec 2009 15:13:30 -0800 Subject: add setconfig.php script to set configuration options --- scripts/setconfig.php | 98 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 scripts/setconfig.php diff --git a/scripts/setconfig.php b/scripts/setconfig.php new file mode 100644 index 000000000..b102f99b1 --- /dev/null +++ b/scripts/setconfig.php @@ -0,0 +1,98 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'd'; +$longoptions = array('delete'); + +$helptext = << +With three args, set the setting to the value. +With two args, just show the setting. +With -d, delete the setting. + + [section] section to use (required) + [setting] setting to use (required) + value to set (optional) + + -d --delete delete the setting (no value) + +END_OF_SETCONFIG_HELP; + +require_once INSTALLDIR.'/scripts/commandline.inc'; + +if (count($args) < 2 || count($args) > 3) { + show_help(); + exit(1); +} + +$section = $args[0]; +$setting = $args[1]; + +if (count($args) == 3) { + $value = $args[2]; +} else { + $value = null; +} + +try { + + if (have_option('d', 'delete')) { // Delete + if (count($args) != 2) { + show_help(); + exit(1); + } + + if (have_option('v', 'verbose')) { + print "Deleting setting $section/$setting..."; + } + + $setting = Config::pkeyGet(array('section' => $section, + 'setting' => $setting)); + + if (empty($setting)) { + print "Not found.\n"; + } else { + $result = $setting->delete(); + if ($result) { + print "DONE.\n"; + } else { + print "ERROR.\n"; + } + } + } else if (count($args) == 2) { // show + if (have_option('v', 'verbose')) { + print "$section/$setting = "; + } + $value = common_config($section, $setting); + print "$value\n"; + } else { // set + if (have_option('v', 'verbose')) { + print "Setting $section/$setting..."; + } + Config::save($section, $setting, $value); + print "DONE.\n"; + } + +} catch (Exception $e) { + print $e->getMessage() . "\n"; + exit(1); +} -- cgit v1.2.3-54-g00ecf From 7f9b07d8c9840944ea7ebf437f45e44584bcb5ee Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 24 Dec 2009 15:25:59 -0600 Subject: Move ssl settings from site admin panel to paths admin panel --- actions/pathsadminpanel.php | 34 ++++++++++++++++++++++++++++++++-- actions/siteadminpanel.php | 31 +------------------------------ 2 files changed, 33 insertions(+), 32 deletions(-) diff --git a/actions/pathsadminpanel.php b/actions/pathsadminpanel.php index f1a2b1b8a..c6daa1734 100644 --- a/actions/pathsadminpanel.php +++ b/actions/pathsadminpanel.php @@ -92,7 +92,7 @@ class PathsadminpanelAction extends AdminPanelAction function saveSettings() { static $settings = array( - 'site' => array('path', 'locale_path'), + 'site' => array('path', 'locale_path', 'ssl', 'sslserver'), 'theme' => array('server', 'dir', 'path'), 'avatar' => array('server', 'dir', 'path'), 'background' => array('server', 'dir', 'path') @@ -160,6 +160,14 @@ class PathsadminpanelAction extends AdminPanelAction $this->clientError(sprintf(_("Locales directory not readable: %s"), $values['site']['locale_path'])); } + // Validate SSL setup + + if (in_array($values['site']['ssl'], array('sometimes', 'always'))) { + if (empty($values['site']['sslserver'])) { + $this->clientError(_("You must set an SSL server when enabling SSL.")); + } + } + } } @@ -283,6 +291,29 @@ class PathsAdminPanelForm extends AdminForm $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); + + $this->out->elementStart('fieldset', array('id' => 'settings_admin_ssl')); + $this->out->element('legend', null, _('SSL')); + $this->out->elementStart('ul', 'form_data'); + $this->li(); + $ssl = array('never' => _('Never'), + 'sometimes' => _('Sometimes'), + 'always' => _('Always')); + + common_debug("site ssl = " . $this->value('site', 'ssl')); + + $this->out->dropdown('site-ssl', _('Use SSL'), + $ssl, _('When to use SSL'), + false, $this->value('ssl', 'site')); + $this->unli(); + + $this->li(); + $this->input('sslserver', _('SSL Server'), + _('Server to direct SSL requests to'), 'site'); + $this->unli(); + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } /** @@ -297,7 +328,6 @@ class PathsAdminPanelForm extends AdminForm 'save', _('Save paths')); } - /** * Utility to simplify some of the duplicated code around * params and settings. Overriding the input() in the base class diff --git a/actions/siteadminpanel.php b/actions/siteadminpanel.php index b963336e6..f260a4476 100644 --- a/actions/siteadminpanel.php +++ b/actions/siteadminpanel.php @@ -92,8 +92,7 @@ class SiteadminpanelAction extends AdminPanelAction { static $settings = array('site' => array('name', 'broughtby', 'broughtbyurl', 'email', 'timezone', 'language', - 'ssl', 'sslserver', 'site', - 'textlimit', 'dupelimit'), + 'site', 'textlimit', 'dupelimit'), 'snapshot' => array('run', 'reporturl', 'frequency')); static $booleans = array('site' => array('private', 'inviteonly', 'closed', 'fancy')); @@ -192,14 +191,6 @@ class SiteadminpanelAction extends AdminPanelAction $this->clientError(_("Snapshot frequency must be a number.")); } - // Validate SSL setup - - if (in_array($values['site']['ssl'], array('sometimes', 'always'))) { - if (empty($values['site']['sslserver'])) { - $this->clientError(_("You must set an SSL server when enabling SSL.")); - } - } - if (mb_strlen($values['site']['sslserver']) > 255) { $this->clientError(_("Invalid SSL server. The maximum length is 255 characters.")); } @@ -376,26 +367,6 @@ class SiteAdminPanelForm extends AdminForm $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); - $this->out->elementStart('fieldset', array('id' => 'settings_admin_ssl')); - $this->out->element('legend', null, _('SSL')); - $this->out->elementStart('ul', 'form_data'); - $this->li(); - $ssl = array('never' => _('Never'), - 'sometimes' => _('Sometimes'), - 'always' => _('Always')); - - $this->out->dropdown('ssl', _('Use SSL'), - $ssl, _('When to use SSL'), - false, $this->value('ssl', 'site')); - $this->unli(); - - $this->li(); - $this->input('sslserver', _('SSL Server'), - _('Server to direct SSL requests to')); - $this->unli(); - $this->out->elementEnd('ul'); - $this->out->elementEnd('fieldset'); - $this->out->elementStart('fieldset', array('id' => 'settings_admin_limits')); $this->out->element('legend', null, _('Limits')); $this->out->elementStart('ul', 'form_data'); -- cgit v1.2.3-54-g00ecf From 1a462b04d7594159e90b514538ddbe3f7effd7f8 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 24 Dec 2009 16:50:28 -0600 Subject: Paths admin panel should not insist on an ssl server being specified, ever. --- actions/pathsadminpanel.php | 7 ++----- actions/siteadminpanel.php | 4 ---- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/actions/pathsadminpanel.php b/actions/pathsadminpanel.php index c6daa1734..d39c7c449 100644 --- a/actions/pathsadminpanel.php +++ b/actions/pathsadminpanel.php @@ -162,12 +162,9 @@ class PathsadminpanelAction extends AdminPanelAction // Validate SSL setup - if (in_array($values['site']['ssl'], array('sometimes', 'always'))) { - if (empty($values['site']['sslserver'])) { - $this->clientError(_("You must set an SSL server when enabling SSL.")); - } + if (mb_strlen($values['site']['sslserver']) > 255) { + $this->clientError(_("Invalid SSL server. The maximum length is 255 characters.")); } - } } diff --git a/actions/siteadminpanel.php b/actions/siteadminpanel.php index f260a4476..5e29f4c19 100644 --- a/actions/siteadminpanel.php +++ b/actions/siteadminpanel.php @@ -191,10 +191,6 @@ class SiteadminpanelAction extends AdminPanelAction $this->clientError(_("Snapshot frequency must be a number.")); } - if (mb_strlen($values['site']['sslserver']) > 255) { - $this->clientError(_("Invalid SSL server. The maximum length is 255 characters.")); - } - // Validate text limit if (!Validate::number($values['site']['textlimit'], array('min' => 140))) { -- cgit v1.2.3-54-g00ecf From 5d6b6bfd3494a7829c8fdccfdf85278811db83c8 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 27 Dec 2009 11:04:53 -0800 Subject: admin page checks for right to review flags --- plugins/UserFlag/UserFlagPlugin.php | 12 +++++++++- plugins/UserFlag/adminprofileflag.php | 43 +++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index 75dcca4fc..b4f9bd783 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -43,6 +43,8 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { class UserFlagPlugin extends Plugin { + const REVIEWFLAGS = 'UserFlagPlugin::reviewflags'; + function onCheckSchema() { $schema = Schema::get(); @@ -138,7 +140,7 @@ class UserFlagPlugin extends Plugin function onEndShowStatusNetStyles($action) { - $action->cssLink(common_path('plugins/UserFlag/userflag.css'), + $action->cssLink(common_path('plugins/UserFlag/userflag.css'), null, 'screen, projection, tv'); return true; } @@ -148,4 +150,12 @@ class UserFlagPlugin extends Plugin $action->inlineScript('if ($(".form_entity_flag").length > 0) { SN.U.FormXHR($(".form_entity_flag")); }'); return true; } + + function onUserRightsCheck($user, $right, &$result) { + if ($right == self::REVIEWFLAGS) { + $result = $user->hasRole('moderator'); + return false; // done processing! + } + return true; // unchanged! + } } diff --git a/plugins/UserFlag/adminprofileflag.php b/plugins/UserFlag/adminprofileflag.php index 20b808637..5d6acf086 100644 --- a/plugins/UserFlag/adminprofileflag.php +++ b/plugins/UserFlag/adminprofileflag.php @@ -43,6 +43,8 @@ if (!defined('STATUSNET')) { class AdminprofileflagAction extends Action { + var $page = null; + /** * Take arguments for running * @@ -55,6 +57,47 @@ class AdminprofileflagAction extends Action { parent::prepare($args); + $user = common_current_user(); + + // User must be logged in. + + if (!common_logged_in()) { + $this->clientError(_('Not logged in.')); + return; + } + + $user = common_current_user(); + + // ...because they're logged in + + assert(!empty($user)); + + // It must be a "real" login, not saved cookie login + + if (!common_is_real_login()) { + // Cookie theft is too easy; we require automatic + // logins to re-authenticate before admining the site + common_set_returnto($this->selfUrl()); + if (Event::handle('RedirectToLogin', array($this, $user))) { + common_redirect(common_local_url('login'), 303); + } + } + + // User must have the right to review flags + + if (!$user->hasRight(UserFlagPlugin::REVIEWFLAGS)) { + $this->clientError(_('You cannot review profile flags.')); + return false; + } + + $page = $this->int('page'); + + if (empty($page)) { + $this->page = 1; + } else { + $this->page = $page; + } + return true; } -- cgit v1.2.3-54-g00ecf From 4b7835caa570a27f372935fdda799dd065ae8ea4 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 27 Dec 2009 11:47:54 -0800 Subject: pagination works for flagged profiles --- plugins/UserFlag/adminprofileflag.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/plugins/UserFlag/adminprofileflag.php b/plugins/UserFlag/adminprofileflag.php index 5d6acf086..b0888a31d 100644 --- a/plugins/UserFlag/adminprofileflag.php +++ b/plugins/UserFlag/adminprofileflag.php @@ -43,7 +43,8 @@ if (!defined('STATUSNET')) { class AdminprofileflagAction extends Action { - var $page = null; + var $page = null; + var $profiles = null; /** * Take arguments for running @@ -90,14 +91,14 @@ class AdminprofileflagAction extends Action return false; } - $page = $this->int('page'); + $this->page = $this->trimmed('page'); - if (empty($page)) { + if (empty($this->page)) { $this->page = 1; - } else { - $this->page = $page; } + $this->profiles = $this->getProfiles(); + return true; } @@ -128,11 +129,12 @@ class AdminprofileflagAction extends Action function showContent() { - $profile = $this->getProfiles(); + $pl = new FlaggedProfileList($this->profiles, $this); - $pl = new FlaggedProfileList($profile, $this); + $cnt = $pl->show(); - $pl->show(); + $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, + $this->page, 'adminprofileflag'); } function getProfiles() @@ -146,7 +148,12 @@ class AdminprofileflagAction extends Action $ufp->whereAdd('cleared is NULL'); $ufp->groupBy('profile_id'); - $ufp->orderBy('flag_count DESC'); + $ufp->orderBy('flag_count DESC, profile_id DESC'); + + $offset = ($this->page-1) * PROFILES_PER_PAGE; + $limit = PROFILES_PER_PAGE + 1; + + $ufp->limit($offset, $limit); $profiles = array(); -- cgit v1.2.3-54-g00ecf From 7ef5dd344cdd295ab3e3a1543d7415d93f4747c6 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Mon, 28 Dec 2009 09:15:35 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans --- locale/ar/LC_MESSAGES/statusnet.po | 18 +- locale/arz/LC_MESSAGES/statusnet.po | 115 +++--- locale/bg/LC_MESSAGES/statusnet.po | 12 +- locale/ca/LC_MESSAGES/statusnet.po | 4 +- locale/cs/LC_MESSAGES/statusnet.po | 4 +- locale/de/LC_MESSAGES/statusnet.po | 4 +- locale/el/LC_MESSAGES/statusnet.po | 4 +- locale/en_GB/LC_MESSAGES/statusnet.po | 4 +- locale/es/LC_MESSAGES/statusnet.po | 4 +- locale/fa/LC_MESSAGES/statusnet.po | 9 +- locale/fi/LC_MESSAGES/statusnet.po | 4 +- locale/fr/LC_MESSAGES/statusnet.po | 7 +- locale/ga/LC_MESSAGES/statusnet.po | 4 +- locale/he/LC_MESSAGES/statusnet.po | 4 +- locale/hsb/LC_MESSAGES/statusnet.po | 4 +- locale/ia/LC_MESSAGES/statusnet.po | 4 +- locale/is/LC_MESSAGES/statusnet.po | 4 +- locale/it/LC_MESSAGES/statusnet.po | 4 +- locale/ja/LC_MESSAGES/statusnet.po | 646 ++++++++++++++++------------------ locale/ko/LC_MESSAGES/statusnet.po | 4 +- locale/mk/LC_MESSAGES/statusnet.po | 4 +- locale/nb/LC_MESSAGES/statusnet.po | 4 +- locale/nl/LC_MESSAGES/statusnet.po | 7 +- locale/nn/LC_MESSAGES/statusnet.po | 4 +- locale/pl/LC_MESSAGES/statusnet.po | 11 +- locale/pt/LC_MESSAGES/statusnet.po | 4 +- locale/pt_BR/LC_MESSAGES/statusnet.po | 4 +- locale/ru/LC_MESSAGES/statusnet.po | 7 +- locale/statusnet.po | 2 +- locale/sv/LC_MESSAGES/statusnet.po | 4 +- locale/te/LC_MESSAGES/statusnet.po | 4 +- locale/tr/LC_MESSAGES/statusnet.po | 4 +- locale/uk/LC_MESSAGES/statusnet.po | 8 +- locale/vi/LC_MESSAGES/statusnet.po | 4 +- locale/zh_CN/LC_MESSAGES/statusnet.po | 4 +- locale/zh_TW/LC_MESSAGES/statusnet.po | 4 +- 36 files changed, 431 insertions(+), 511 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 85745b17d..0a4bdeb2f 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:09+0000\n" +"PO-Revision-Date: 2009-12-28 08:09:41+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -121,9 +121,8 @@ msgstr "" #: actions/apiaccountupdateprofile.php:97 #: actions/apiaccountupdateprofilebackgroundimage.php:94 #: actions/apiaccountupdateprofilecolors.php:118 -#, fuzzy msgid "API method not found." -msgstr "لم يوجد رمز التأكيد." +msgstr "لم يتم العثور على وسيلة API." #: actions/apiaccountupdatedeliverydevice.php:85 #: actions/apiaccountupdateprofile.php:89 @@ -159,9 +158,8 @@ msgid "User has no profile." msgstr "ليس للمستخدم ملف شخصي." #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." -msgstr "تعذّر حفظ الملف الشخصي." +msgstr "لم يمكن حفظ الملف." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 @@ -4221,7 +4219,7 @@ msgstr "" #: lib/command.php:427 msgid "Already repeated that notice" -msgstr "كرر بالفعل هذه الإشعار" +msgstr "كرر بالفعل هذا الإشعار" #: lib/command.php:435 #, php-format @@ -5058,9 +5056,8 @@ msgid "Popular" msgstr "مشهورة" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "كرر هذا الإشعار" +msgstr "كرر هذا الإشعار؟" #: lib/repeatform.php:132 msgid "Repeat this notice" @@ -5150,9 +5147,8 @@ msgid "Could not subscribe other to you." msgstr "" #: lib/subs.php:128 -#, fuzzy msgid "Not subscribed!" -msgstr "لست مُشتركًا!" +msgstr "غير مشترك!" #: lib/subs.php:133 msgid "Couldn't delete self-subscription." diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index 1ad791601..c0ec3623e 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:12+0000\n" +"PO-Revision-Date: 2009-12-28 08:09:44+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -120,9 +120,8 @@ msgstr "" #: actions/apiaccountupdateprofile.php:97 #: actions/apiaccountupdateprofilebackgroundimage.php:94 #: actions/apiaccountupdateprofilecolors.php:118 -#, fuzzy msgid "API method not found." -msgstr "لم يوجد رمز التأكيد." +msgstr "لم يتم العثور على وسيلة API." #: actions/apiaccountupdatedeliverydevice.php:85 #: actions/apiaccountupdateprofile.php:89 @@ -158,9 +157,8 @@ msgid "User has no profile." msgstr "ليس للمستخدم ملف شخصى." #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." -msgstr "تعذّر حفظ الملف الشخصى." +msgstr "لم يمكن حفظ الملف." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 @@ -186,9 +184,8 @@ msgid "Could not update your design." msgstr "تعذّر تحديث تصميمك." #: actions/apiblockcreate.php:105 -#, fuzzy msgid "You cannot block yourself!" -msgstr "لا يمكنك حذف المستخدمين." +msgstr "ا يمكنك منع نفسك!" #: actions/apiblockcreate.php:119 msgid "Block user failed." @@ -431,14 +428,12 @@ msgid "No such notice." msgstr "لا إشعار كهذا." #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." +msgstr "لا يمكنك تكرار ملحوظتك الخاصة." #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "احذف هذا الإشعار" +msgstr "كرر بالفعل هذه الملاحظة." #: actions/apistatusesshow.php:138 msgid "Status deleted." @@ -515,14 +510,14 @@ msgid "Repeated by %s" msgstr "" #: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#, php-format msgid "Repeated to %s" -msgstr "الردود على %s" +msgstr "كرر إلى %s" #: actions/apitimelineretweetsofme.php:112 -#, fuzzy, php-format +#, php-format msgid "Repeats of %s" -msgstr "الردود على %s" +msgstr "تكرارات %s" #: actions/apitimelinetag.php:102 actions/tag.php:66 #, php-format @@ -1235,29 +1230,25 @@ msgid "Featured users, page %d" msgstr "مستخدمون مختارون، صفحه %d" #: actions/featured.php:99 -#, fuzzy, php-format +#, php-format msgid "A selection of some great users on %s" -msgstr "قسم للمستخدمين المتميزين على %s" +msgstr "اختيار لبعض المستخدمين المتميزين على %s" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "لا إشعار" +msgstr "لا رقم ملاحظة." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "لا إشعار" +msgstr "لا ملاحظة." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "لا مرفقات" +msgstr "لا مرفقات." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "لا مرفقات مرفوعة" +msgstr "لا مرفقات مرفوعة." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -2762,29 +2753,24 @@ msgid "Only logged-in users can repeat notices." msgstr "" #: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy msgid "No notice specified." -msgstr "لا ملف شخصى مُحدّد." +msgstr "لا ملاحظة محددة." #: actions/repeat.php:76 -#, fuzzy msgid "You can't repeat your own notice." -msgstr "لا يمكنك إسكات المستخدمين على هذا الموقع." +msgstr "لا يمكنك تكرار ملاحظتك الشخصية." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "لقد منعت مسبقا هذا المستخدم." +msgstr "أنت كررت هذه الملاحظة بالفعل." #: actions/repeat.php:114 lib/noticelist.php:621 -#, fuzzy msgid "Repeated" -msgstr "أنشئ" +msgstr "مكرر" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "أنشئ" +msgstr "مكرر!" #: actions/replies.php:125 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3089,9 +3075,9 @@ msgid "" msgstr "" #: actions/showstream.php:313 -#, fuzzy, php-format +#, php-format msgid "Repeat of %s" -msgstr "الردود على %s" +msgstr "تكرارات %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." @@ -3219,9 +3205,8 @@ msgid "Prohibit anonymous users (not logged in) from viewing site?" msgstr "أأمنع المستخدمين المجهولين (غير الوالجين) من عرض الموقع؟" #: actions/siteadminpanel.php:327 -#, fuzzy msgid "Invite only" -msgstr "ادعُ" +msgstr "بالدعوه فقط" #: actions/siteadminpanel.php:329 msgid "Make registration invitation only." @@ -3503,9 +3488,8 @@ msgid "Notice feed for tag %s (Atom)" msgstr "" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "لا مُدخل هويه." +msgstr "لا مدخل هويه." #: actions/tagother.php:65 #, php-format @@ -3556,9 +3540,8 @@ msgid "You haven't blocked that user." msgstr "لم تمنع هذا المستخدم." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "ليس للمستخدم إشعار أخير" +msgstr "المستخدم ليس في صندوق الرمل." #: actions/unsilence.php:72 msgid "User is not silenced." @@ -3762,9 +3745,8 @@ msgid "Wrong image type for avatar URL ‘%s’." msgstr "" #: actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "لا هوية" +msgstr "لا هويه." #: actions/userdesignsettings.php:76 lib/designsettings.php:65 msgid "Profile design" @@ -3866,9 +3848,9 @@ msgid "DB error inserting reply: %s" msgstr "" #: classes/Notice.php:1371 -#, fuzzy, php-format +#, php-format msgid "RT @%1$s %2$s" -msgstr "%1$s (%2$s)" +msgstr "آر تي @%1$s %2$s" #: classes/User.php:368 #, php-format @@ -4235,19 +4217,17 @@ msgid "Cannot repeat your own notice" msgstr "" #: lib/command.php:427 -#, fuzzy msgid "Already repeated that notice" -msgstr "احذف هذا الإشعار" +msgstr "كرر بالفعل هذا الإشعار" #: lib/command.php:435 -#, fuzzy, php-format +#, php-format msgid "Notice from %s repeated" -msgstr "أُرسل الإشعار" +msgstr "الإشعار من %s مكرر" #: lib/command.php:437 -#, fuzzy msgid "Error repeating notice." -msgstr "خطأ أثناء حفظ الإشعار." +msgstr "خطأ تكرار الإشعار." #: lib/command.php:491 #, php-format @@ -4934,9 +4914,8 @@ msgid "in context" msgstr "فى السياق" #: lib/noticelist.php:548 -#, fuzzy msgid "Repeated by" -msgstr "أنشئ" +msgstr "مكرر بواسطه" #: lib/noticelist.php:577 msgid "Reply to this notice" @@ -4947,9 +4926,8 @@ msgid "Reply" msgstr "رُد" #: lib/noticelist.php:620 -#, fuzzy msgid "Notice repeated" -msgstr "حُذف الإشعار." +msgstr "الإشعار مكرر" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -5049,9 +5027,8 @@ msgid "All groups" msgstr "كل المجموعات" #: lib/profileformaction.php:123 -#, fuzzy msgid "No return-to arguments." -msgstr "لا مُدخل هويه." +msgstr "لا مدخلات رجوع إلى." #: lib/profileformaction.php:137 msgid "Unimplemented method." @@ -5078,23 +5055,20 @@ msgid "Popular" msgstr "مشهورة" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "رُد على هذا الإشعار" +msgstr "كرر هذا الإشعار؟" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "رُد على هذا الإشعار" +msgstr "كرر هذا الإشعار" #: lib/sandboxform.php:67 msgid "Sandbox" msgstr "" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "ألغِ منع هذا المستخدم" +msgstr "أضف هذا المستخدم إلى صندوق الرمل" #: lib/searchaction.php:120 msgid "Search site" @@ -5172,14 +5146,12 @@ msgid "Could not subscribe other to you." msgstr "" #: lib/subs.php:128 -#, fuzzy msgid "Not subscribed!" -msgstr "لست مُشتركًا!" +msgstr "غير مشترك!" #: lib/subs.php:133 -#, fuzzy msgid "Couldn't delete self-subscription." -msgstr "تعذّر حذف الاشتراك." +msgstr "م يمكن حذف اشتراك ذاتي." #: lib/subs.php:146 msgid "Couldn't delete subscription." @@ -5212,9 +5184,8 @@ msgid "Unsandbox" msgstr "" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "ألغِ منع هذا المستخدم" +msgstr "أزل هذا المستخدم من صندوق الرمل" #: lib/unsilenceform.php:67 msgid "Unsilence" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index aed553f9e..b3940ff01 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:15+0000\n" +"PO-Revision-Date: 2009-12-28 08:09:50+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -1350,14 +1350,12 @@ msgid "Only an admin can block group members." msgstr "Само администратор може да блокира членове от групата." #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "Потребителят ви е блокирал." +msgstr "Потребителят вече е блокиран за групата." #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "Не членувате в тази група." +msgstr "Потребителят не членува в групата." #: actions/groupblock.php:136 actions/groupmembers.php:314 #, fuzzy @@ -2054,7 +2052,7 @@ msgstr "вид съдържание " #: actions/oembed.php:160 msgid "Only " -msgstr "" +msgstr "Само " #: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1031 #: lib/api.php:1059 lib/api.php:1169 diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index cf1494f2d..f897ec18d 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:19+0000\n" +"PO-Revision-Date: 2009-12-28 08:09:53+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index a8516db7e..6cc1e1dbf 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:25+0000\n" +"PO-Revision-Date: 2009-12-28 08:09:56+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index e76dd9bde..42cc95a1e 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -12,11 +12,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:29+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:00+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index d3aa68684..91637b930 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:32+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:05+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index b500c9290..115d94ace 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:35+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:08+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index f46dc63ed..e0e5ebba7 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -12,11 +12,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:38+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:11+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index c22de28a4..f6c9559aa 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:44+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:17+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 @@ -4370,29 +4370,24 @@ msgid "You are not subscribed to anyone." msgstr "شما توسط هیچ کس تصویب نشده اید ." #: lib/command.php:687 -#, fuzzy msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" msgstr[0] "هم اکنون شما این کاربران را دنبال می‌کنید: " #: lib/command.php:707 -#, fuzzy msgid "No one is subscribed to you." msgstr "هیچکس شما را تایید نکرده ." #: lib/command.php:709 -#, fuzzy msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" msgstr[0] "هیچکس شما را تایید نکرده ." #: lib/command.php:729 -#, fuzzy msgid "You are not a member of any groups." msgstr "شما در هیچ گروهی عضو نیستید ." #: lib/command.php:731 -#, fuzzy msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" msgstr[0] "شما یک عضو این گروه نیستید." diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index da0d8ac23..8887a7b91 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:41+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:14+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 3e4a83d9b..c3b1a0527 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -14,11 +14,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:51+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:21+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -5475,9 +5475,8 @@ msgid "Popular" msgstr "Populaires" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Reprendre cet avis" +msgstr "Reprendre cet avis ?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 5c2bd404b..8da467cea 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:54+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:24+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 8c037aea0..c0d4ecf51 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:42:57+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:27+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 5b6d082a9..ae5b19651 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:00+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:30+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 15ff0db7c..9f64bd619 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:03+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:33+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 0423d2ecb..d085a47c8 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:06+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:35+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index f3d6d3c57..29aab4755 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:10+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:38+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 51f0b9a34..9fb5918e7 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -2,6 +2,7 @@ # # Author@translatewiki.net: Aotake # Author@translatewiki.net: Fryed-peach +# Author@translatewiki.net: Sonoda # Author@translatewiki.net: Whym # -- # This file is distributed under the same license as the StatusNet package. @@ -11,11 +12,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:13+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:42+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -83,7 +84,7 @@ msgstr "%s の友人のフィード (Atom)" #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." -msgstr "これは %s と友人の予定表です。まだ誰も投稿していません。" +msgstr "これは %s と友人のタイムラインです。まだ誰も投稿していません。" #: actions/all.php:132 #, php-format @@ -91,8 +92,8 @@ msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" -"もっと多くの人とつながってみましょう。[グループに参加](%%action.groups%%) し" -"てみたり、何か投稿してみましょう。" +"もっと多くの人をフォローしてみましょう。[グループに参加](%%action.groups%%) " +"してみたり、何か投稿してみましょう。" #: actions/all.php:134 #, php-format @@ -209,22 +210,22 @@ msgstr "利用者のブロック解除に失敗しました。" #: actions/apidirectmessage.php:89 #, php-format msgid "Direct messages from %s" -msgstr "" +msgstr "%s からのダイレクトメッセージ" #: actions/apidirectmessage.php:93 #, php-format msgid "All the direct messages sent from %s" -msgstr "" +msgstr "%s から送られた全てのダイレクトメッセージ" #: actions/apidirectmessage.php:101 #, php-format msgid "Direct messages to %s" -msgstr "" +msgstr "%s へのダイレクトメッセージ" #: actions/apidirectmessage.php:105 #, php-format msgid "All the direct messages sent to %s" -msgstr "" +msgstr "%s へ送った全てのダイレクトメッセージ" #: actions/apidirectmessage.php:156 actions/apifavoritecreate.php:99 #: actions/apifavoritedestroy.php:100 actions/apifriendshipscreate.php:100 @@ -248,12 +249,12 @@ msgstr "API メソッドが見つかりません!" #: actions/apidirectmessagenew.php:126 msgid "No message text!" -msgstr "お知らせの本文がありません!" +msgstr "メッセージの本文がありません!" #: actions/apidirectmessagenew.php:135 actions/newmessage.php:150 #, php-format msgid "That's too long. Max message size is %d chars." -msgstr "長すぎます。お知らせは最大 %d 字までです。" +msgstr "長すぎます。メッセージは最大 %d 字までです。" #: actions/apidirectmessagenew.php:146 msgid "Recipient user not found." @@ -261,28 +262,28 @@ msgstr "受け取り手の利用者が見つかりません。" #: actions/apidirectmessagenew.php:150 msgid "Can't send direct messages to users who aren't your friend." -msgstr "" +msgstr "友人でない利用者にダイレクトメッセージを送ることはできません。" #: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:109 #: actions/apistatusesdestroy.php:113 msgid "No status found with that ID." -msgstr "" +msgstr "そのIDのステータスが見つかりません。" #: actions/apifavoritecreate.php:119 msgid "This status is already a favorite!" -msgstr "" +msgstr "このステータスはすでにお気に入りです!" #: actions/apifavoritecreate.php:130 actions/favor.php:84 lib/command.php:176 msgid "Could not create favorite." -msgstr "" +msgstr "お気に入りを作成できません。" #: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite!" -msgstr "" +msgstr "そのステータスはお気に入りではありません!" #: actions/apifavoritedestroy.php:134 actions/disfavor.php:87 msgid "Could not delete favorite." -msgstr "" +msgstr "お気に入りを取り消すことができません。" #: actions/apifriendshipscreate.php:109 msgid "Could not follow user: User not found." @@ -304,17 +305,15 @@ msgstr "自分自身をフォロー停止することはできません!" #: actions/apifriendshipsexists.php:94 msgid "Two user ids or screen_names must be supplied." -msgstr "" +msgstr "ふたつのIDかスクリーンネームが必要です。" #: actions/apifriendshipsshow.php:135 -#, fuzzy msgid "Could not determine source user." -msgstr "ユーザを更新できません" +msgstr "ソースユーザーを決定できません。" #: actions/apifriendshipsshow.php:143 -#, fuzzy msgid "Could not find target user." -msgstr "ユーザを更新できません" +msgstr "ターゲットユーザーを見つけられません。" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 #: actions/newgroup.php:126 actions/profilesettings.php:208 @@ -349,9 +348,9 @@ msgid "Full name is too long (max 255 chars)." msgstr "フルネームが長すぎます。(255字まで)" #: actions/apigroupcreate.php:213 -#, fuzzy, php-format +#, php-format msgid "Description is too long (max %d chars)." -msgstr "バイオグラフィが長すぎます。(最長140字)" +msgstr "記述が長すぎます。(最長140字)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 #: actions/newgroup.php:148 actions/profilesettings.php:225 @@ -363,65 +362,62 @@ msgstr "場所が長すぎます。(255字まで)" #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." -msgstr "" +msgstr "別名が多すぎます! 最大 %d。" #: actions/apigroupcreate.php:264 actions/editgroup.php:224 #: actions/newgroup.php:168 -#, fuzzy, php-format +#, php-format msgid "Invalid alias: \"%s\"" -msgstr "不正なホームページ '%s'" +msgstr "不正な別名: \"%s\"" #: actions/apigroupcreate.php:273 actions/editgroup.php:228 #: actions/newgroup.php:172 -#, fuzzy, php-format +#, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。" +msgstr "別名 \"%s\" は既に使用されています。他のものを試してみて下さい。" #: actions/apigroupcreate.php:286 actions/editgroup.php:234 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "別名はニックネームと同じではいけません。" #: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 #: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 #: actions/apigroupshow.php:90 actions/apitimelinegroup.php:91 -#, fuzzy msgid "Group not found!" -msgstr "API メソッドが見つかりません!" +msgstr "グループが見つかりません!" #: actions/apigroupjoin.php:110 -#, fuzzy msgid "You are already a member of that group." -msgstr "既にログイン済みです。" +msgstr "すでにこのグループのメンバーです。" #: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 msgid "You have been blocked from that group by the admin." -msgstr "" +msgstr "管理者によってこのグループからブロックされています。" #: actions/apigroupjoin.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s." -msgstr "サーバへリダイレクトできません : %s" +msgstr "利用者 %s はグループ %s に参加できません。" #: actions/apigroupleave.php:114 -#, fuzzy msgid "You are not a member of this group." -msgstr "そのプロファイルは送信されていません。" +msgstr "このグループのメンバーではありません。" #: actions/apigroupleave.php:124 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s." -msgstr "OpenIDを作成できません : %s" +msgstr "利用者 %s をグループ %s から削除できません。" #: actions/apigrouplist.php:95 -#, fuzzy, php-format +#, php-format msgid "%s's groups" -msgstr "%s グループ" +msgstr "%s のグループ" #: actions/apigrouplist.php:103 #, php-format msgid "Groups %s is a member of on %s." -msgstr "そのプロファイルは送信されていません。" +msgstr "グループ %s は %s 上のメンバーです。" #: actions/apigrouplistall.php:90 actions/usergroups.php:62 #, php-format @@ -429,71 +425,67 @@ msgid "%s groups" msgstr "%s グループ" #: actions/apigrouplistall.php:94 -#, fuzzy, php-format +#, php-format msgid "groups on %s" -msgstr "このサイト上のグループを検索する" +msgstr "%s 上のグループ" #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "このメソッドには POST か DELETE が必要です。" #: actions/apistatusesdestroy.php:130 msgid "You may not delete another user's status." -msgstr "" +msgstr "他の利用者のステータスを消すことはできません。" #: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 msgid "No such notice." -msgstr "そのような通知はありません。" +msgstr "そのようなつぶやきはありません。" #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "ライセンスに同意頂けない場合は登録できません。" +msgstr "あなたのつぶやきを繰り返せません。" #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "この通知を削除" +msgstr "すでにつぶやきを繰り返しています。" #: actions/apistatusesshow.php:138 -#, fuzzy msgid "Status deleted." -msgstr "アバターが更新されました。" +msgstr "ステータスを削除しました。" #: actions/apistatusesshow.php:144 msgid "No status with that ID found." -msgstr "" +msgstr "そのIDでのステータスはありません。" #: actions/apistatusesupdate.php:157 actions/newnotice.php:155 #: scripts/maildaemon.php:71 -#, fuzzy, php-format +#, php-format msgid "That's too long. Max notice size is %d chars." -msgstr "長すぎます。通知は最大 140 字までです。" +msgstr "長すぎます。つぶやきは最大 140 字までです。" #: actions/apistatusesupdate.php:198 msgid "Not found" -msgstr "" +msgstr "みつかりません" #: actions/apistatusesupdate.php:227 actions/newnotice.php:191 #, php-format msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgstr "つぶやきは URL を含めて最大 %d 字までです。" #: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 -#, fuzzy msgid "Unsupported format." -msgstr "サポート外の画像形式です。" +msgstr "サポート外の形式です。" #: actions/apitimelinefavorites.php:108 #, php-format msgid "%s / Favorites from %s" -msgstr "" +msgstr "%s / %s からのお気に入り" #: actions/apitimelinefavorites.php:120 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "" +msgstr "%s は %s でお気に入りを更新しました / %s。" #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 #: actions/grouprss.php:131 actions/userrss.php:90 @@ -505,12 +497,12 @@ msgstr "%s のタイムライン" #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "" +msgstr "%1$s から %2$s 上の更新をしました!" #: actions/apitimelinementions.php:117 -#, fuzzy, php-format +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$ のステータス %2$s" +msgstr "%1$s / %2$s について更新" #: actions/apitimelinementions.php:127 #, php-format @@ -520,7 +512,7 @@ msgstr "" #: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format msgid "%s public timeline" -msgstr "%s の公開タイムライン" +msgstr "%s のパブリックタイムライン" #: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format @@ -533,14 +525,14 @@ msgid "Repeated by %s" msgstr "" #: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#, php-format msgid "Repeated to %s" msgstr "%s への返信" #: actions/apitimelineretweetsofme.php:112 -#, fuzzy, php-format +#, php-format msgid "Repeats of %s" -msgstr "%s への返信" +msgstr "%s の返信" #: actions/apitimelinetag.php:102 actions/tag.php:66 #, php-format @@ -557,9 +549,8 @@ msgid "Not found." msgstr "見つかりません。" #: actions/attachment.php:73 -#, fuzzy msgid "No such attachment." -msgstr "そのようなドキュメントはありません。" +msgstr "そのような添付はありません。" #: actions/avatarbynickname.php:59 actions/grouprss.php:91 #: actions/leavegroup.php:76 @@ -598,12 +589,12 @@ msgstr "アバター設定" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:199 actions/grouplogo.php:259 msgid "Original" -msgstr "" +msgstr "オリジナル" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 #: actions/grouplogo.php:210 actions/grouplogo.php:271 msgid "Preview" -msgstr "" +msgstr "プレビュー" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 #: lib/noticelist.php:603 @@ -616,7 +607,7 @@ msgstr "アップロード" #: actions/avatarsettings.php:231 actions/grouplogo.php:286 msgid "Crop" -msgstr "" +msgstr "切り取り" #: actions/avatarsettings.php:268 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 @@ -632,7 +623,7 @@ msgstr "" #: actions/unsubscribe.php:69 actions/userauthorization.php:52 #: lib/designsettings.php:294 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "あなたのセッショントークンに問題がありました。再度お試しください。" #: actions/avatarsettings.php:281 actions/designadminpanel.php:103 #: actions/emailsettings.php:256 actions/grouplogo.php:319 @@ -643,11 +634,11 @@ msgstr "予期せぬフォーム送信です。" #: actions/avatarsettings.php:328 msgid "Pick a square area of the image to be your avatar" -msgstr "" +msgstr "あなたのアバターとなるイメージを正方形で指定" #: actions/avatarsettings.php:343 actions/grouplogo.php:377 msgid "Lost our file data." -msgstr "" +msgstr "ファイルデータを紛失しました。" #: actions/avatarsettings.php:366 msgid "Avatar updated." @@ -658,19 +649,16 @@ msgid "Failed updating avatar." msgstr "アバターの更新に失敗しました。" #: actions/avatarsettings.php:393 -#, fuzzy msgid "Avatar deleted." -msgstr "アバターが更新されました。" +msgstr "アバターが削除されました。" #: actions/block.php:69 -#, fuzzy msgid "You already blocked that user." -msgstr "既にログイン済みです。" +msgstr "その利用者はすでにブロック済みです。" #: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160 -#, fuzzy msgid "Block user" -msgstr "そのようなユーザはいません。" +msgstr "ブロック利用者" #: actions/block.php:130 msgid "" @@ -685,7 +673,6 @@ msgid "No" msgstr "" #: actions/block.php:143 actions/deleteuser.php:147 -#, fuzzy msgid "Do not block this user" msgstr "このユーザをアンブロックする" @@ -701,13 +688,12 @@ msgstr "このユーザをブロックする" #: actions/block.php:162 msgid "Failed to save block information." -msgstr "" +msgstr "ブロック情報の保存に失敗しました。" #: actions/blockedfromgroup.php:73 actions/editgroup.php:84 #: actions/groupdesignsettings.php:84 actions/grouplogo.php:86 #: actions/groupmembers.php:76 actions/joingroup.php:76 #: actions/showgroup.php:121 -#, fuzzy msgid "No nickname" msgstr "ニックネームがありません。" @@ -715,28 +701,26 @@ msgstr "ニックネームがありません。" #: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 #: actions/grouplogo.php:99 actions/groupmembers.php:83 #: actions/joingroup.php:83 actions/showgroup.php:137 -#, fuzzy msgid "No such group" -msgstr "そのような通知はありません。" +msgstr "そのようなグループはありません。" #: actions/blockedfromgroup.php:90 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles" -msgstr "プロファイルがありません。" +msgstr "%s ブロックされたプロファイル" #: actions/blockedfromgroup.php:93 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles, page %d" -msgstr "%s & ともだち" +msgstr "%s ブロックされたプロファイル、ページ %d" #: actions/blockedfromgroup.php:108 msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "このグループへの参加をブロックされた利用者のリスト。" #: actions/blockedfromgroup.php:281 -#, fuzzy msgid "Unblock user from group" -msgstr "ユーザのアンブロックに失敗しました。" +msgstr "グループからのアンブロック利用者" #: actions/blockedfromgroup.php:313 lib/unblockform.php:69 msgid "Unblock" @@ -748,7 +732,7 @@ msgstr "このユーザをアンブロックする" #: actions/bookmarklet.php:50 msgid "Post to " -msgstr "" +msgstr "投稿" #: actions/confirmaddress.php:75 msgid "No confirmation code." @@ -794,14 +778,13 @@ msgid "The address \"%s\" has been confirmed for your account." msgstr "アドレス \"%s\" はあなたのアカウントとして承認されています。" #: actions/conversation.php:99 -#, fuzzy msgid "Conversation" -msgstr "確認コード" +msgstr "会話" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:216 lib/searchgroupnav.php:82 msgid "Notices" -msgstr "通知" +msgstr "つぶやき" #: actions/deletenotice.php:67 actions/disfavor.php:61 actions/favor.php:62 #: actions/groupblock.php:61 actions/groupunblock.php:61 actions/logout.php:69 @@ -815,7 +798,7 @@ msgstr "ログインしていません。" #: actions/deletenotice.php:71 msgid "Can't delete this notice." -msgstr "この通知を削除できません。" +msgstr "このつぶやきを削除できません。" #: actions/deletenotice.php:103 msgid "" @@ -825,39 +808,35 @@ msgstr "" #: actions/deletenotice.php:109 actions/deletenotice.php:141 msgid "Delete notice" -msgstr "" +msgstr "つぶやき削除" #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" -msgstr "本当にこの通知を削除しますか?" +msgstr "本当にこのつぶやきを削除しますか?" #: actions/deletenotice.php:145 -#, fuzzy msgid "Do not delete this notice" -msgstr "この通知を削除できません。" +msgstr "このつぶやきを削除できません。" #: actions/deletenotice.php:146 lib/noticelist.php:603 msgid "Delete this notice" -msgstr "この通知を削除" +msgstr "このつぶやきを削除" #: actions/deletenotice.php:157 msgid "There was a problem with your session token. Try again, please." -msgstr "" +msgstr "あなたのセッショントークンに問題がありました。再度お試しください。" #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." -msgstr "ユーザを更新できません" +msgstr "利用者を削除できません" #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "ローカルサブスクリプションを使用可能です!" +msgstr "ローカル利用者のみ削除できます。" #: actions/deleteuser.php:110 actions/deleteuser.php:133 -#, fuzzy msgid "Delete user" -msgstr "削除" +msgstr "利用者削除" #: actions/deleteuser.php:135 msgid "" @@ -872,112 +851,106 @@ msgstr "このユーザーを削除" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/adminpanelaction.php:302 lib/groupnav.php:119 msgid "Design" -msgstr "" +msgstr "デザイン" #: actions/designadminpanel.php:73 msgid "Design settings for this StatusNet site." -msgstr "" +msgstr "この StatusNet サイトのデザイン設定。" #: actions/designadminpanel.php:275 -#, fuzzy msgid "Invalid logo URL." -msgstr "不正なサイズ。" +msgstr "不正なロゴ URL" #: actions/designadminpanel.php:279 -#, fuzzy, php-format +#, php-format msgid "Theme not available: %s" -msgstr "このページはあなたが承認したメディアタイプでは利用できません。" +msgstr "テーマが利用できません: %s" #: actions/designadminpanel.php:375 msgid "Change logo" msgstr "ロゴの変更" #: actions/designadminpanel.php:380 -#, fuzzy msgid "Site logo" -msgstr "新しい通知" +msgstr "サイトロゴ" #: actions/designadminpanel.php:387 -#, fuzzy msgid "Change theme" -msgstr "変更" +msgstr "テーマ変更" #: actions/designadminpanel.php:404 -#, fuzzy msgid "Site theme" -msgstr "新しい通知" +msgstr "サイトテーマ" #: actions/designadminpanel.php:405 -#, fuzzy msgid "Theme for the site." -msgstr "サイトからログアウト" +msgstr "サイトのテーマ" #: actions/designadminpanel.php:417 lib/designsettings.php:101 msgid "Change background image" -msgstr "" +msgstr "バックグラウンドイメージの変更" #: actions/designadminpanel.php:422 actions/designadminpanel.php:497 #: lib/designsettings.php:178 msgid "Background" -msgstr "" +msgstr "バックグラウンド" #: actions/designadminpanel.php:427 -#, fuzzy, php-format +#, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "長すぎます。通知は最大 140 字までです。" +msgstr "" +"このサイト用にバックグラウンドイメージをアップロードできます。最大ファイルサ" +"イズは %1$s。" #: actions/designadminpanel.php:457 lib/designsettings.php:139 msgid "On" -msgstr "" +msgstr "オン" #: actions/designadminpanel.php:473 lib/designsettings.php:155 msgid "Off" -msgstr "" +msgstr "オフ" #: actions/designadminpanel.php:474 lib/designsettings.php:156 msgid "Turn background image on or off." -msgstr "" +msgstr "バックグラウンドイメージのオンまたはオフ。" #: actions/designadminpanel.php:479 lib/designsettings.php:161 msgid "Tile background image" -msgstr "" +msgstr "タイルバックグラウンドイメージ" #: actions/designadminpanel.php:488 lib/designsettings.php:170 -#, fuzzy msgid "Change colours" -msgstr "パスワードの変更" +msgstr "色の変更" #: actions/designadminpanel.php:510 lib/designsettings.php:191 msgid "Content" msgstr "内容" #: actions/designadminpanel.php:523 lib/designsettings.php:204 -#, fuzzy msgid "Sidebar" -msgstr "検索" +msgstr "サイドバー" #: actions/designadminpanel.php:536 lib/designsettings.php:217 msgid "Text" -msgstr "" +msgstr "テキスト" #: actions/designadminpanel.php:549 lib/designsettings.php:230 -#, fuzzy msgid "Links" -msgstr "ログイン" +msgstr "リンク" #: actions/designadminpanel.php:577 lib/designsettings.php:247 msgid "Use defaults" -msgstr "" +msgstr "デフォルトを使用" #: actions/designadminpanel.php:578 lib/designsettings.php:248 msgid "Restore default designs" -msgstr "" +msgstr "デフォルトデザインに戻す。" #: actions/designadminpanel.php:584 lib/designsettings.php:254 msgid "Reset back to default" -msgstr "" +msgstr "デフォルトへリセットする" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 @@ -991,15 +964,15 @@ msgstr "保存" #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" -msgstr "" +msgstr "デザインの保存" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "" +msgstr "このつぶやきはお気に入りではありません!" #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "" +msgstr "お気に入りに加える" #: actions/doc.php:69 msgid "No such document." @@ -1008,40 +981,37 @@ msgstr "そのようなドキュメントはありません。" #: actions/editgroup.php:56 #, php-format msgid "Edit %s group" -msgstr "" +msgstr "%s グループを編集" #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." -msgstr "" +msgstr "グループを作るにはログインしていなければなりません。" #: actions/editgroup.php:103 actions/editgroup.php:168 #: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 msgid "You must be an admin to edit the group" -msgstr "" +msgstr "グループを編集するには管理者である必要があります。" #: actions/editgroup.php:154 msgid "Use this form to edit the group." -msgstr "" +msgstr "このフォームを使ってグループを編集します。" #: actions/editgroup.php:201 actions/newgroup.php:145 -#, fuzzy, php-format +#, php-format msgid "description is too long (max %d chars)." -msgstr "バイオグラフィが長すぎます。(最長140字)" +msgstr "記述が長すぎます。(最長 %d 字)" #: actions/editgroup.php:253 -#, fuzzy msgid "Could not update group." -msgstr "ユーザを更新できません" +msgstr "グループを更新できません。" #: actions/editgroup.php:259 classes/User_group.php:390 -#, fuzzy msgid "Could not create aliases." -msgstr "アバターを保存できません" +msgstr "別名を作成できません。" #: actions/editgroup.php:269 -#, fuzzy msgid "Options saved." -msgstr "設定が保存されました。" +msgstr "オプションが保存されました。" #: actions/emailsettings.php:60 msgid "Email Settings" @@ -1050,7 +1020,7 @@ msgstr "メール設定" #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "" +msgstr "%%site.name%% からのメールを管理。" #: actions/emailsettings.php:100 actions/imsettings.php:100 #: actions/smssettings.php:104 @@ -1059,7 +1029,7 @@ msgstr "住所" #: actions/emailsettings.php:105 msgid "Current confirmed email address." -msgstr "" +msgstr "現在確認されているメールアドレス。" #: actions/emailsettings.php:107 actions/emailsettings.php:140 #: actions/imsettings.php:108 actions/smssettings.php:115 @@ -1082,11 +1052,11 @@ msgstr "中止" #: actions/emailsettings.php:121 msgid "Email Address" -msgstr "" +msgstr "メールアドレス" #: actions/emailsettings.php:123 msgid "Email address, like \"UserName@example.org\"" -msgstr "" +msgstr "メールアドレス、\"UserName@example.org\" のような" #: actions/emailsettings.php:126 actions/imsettings.php:133 #: actions/smssettings.php:145 @@ -1095,15 +1065,15 @@ msgstr "追加" #: actions/emailsettings.php:133 actions/smssettings.php:152 msgid "Incoming email" -msgstr "" +msgstr "入ってくるメール" #: actions/emailsettings.php:138 actions/smssettings.php:157 msgid "Send email to this address to post new notices." -msgstr "" +msgstr "新しいつぶやき投稿にこのアドレスへメールする" #: actions/emailsettings.php:145 actions/smssettings.php:162 msgid "Make a new email address for posting to; cancels the old one." -msgstr "" +msgstr "投稿のための新しいEメールアドレスを作ります; 古い方を取り消します。" #: actions/emailsettings.php:148 actions/smssettings.php:164 msgid "New" @@ -1116,31 +1086,34 @@ msgstr "設定" #: actions/emailsettings.php:158 msgid "Send me notices of new subscriptions through email." -msgstr "" +msgstr "メールで新規フォローの通知を私に送ってください。" #: actions/emailsettings.php:163 msgid "Send me email when someone adds my notice as a favorite." msgstr "" +"だれかがお気に入りとして私のつぶやきを加えたらメールを私に送ってください。" #: actions/emailsettings.php:169 msgid "Send me email when someone sends me a private message." msgstr "" +"だれかがプライベート・メッセージを私に送るときにはメールを私に送ってくださ" +"い。" #: actions/emailsettings.php:174 msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "" +msgstr "だれかが\"@-返信\"を私を送るときにはメールを私に送ってください、" #: actions/emailsettings.php:179 msgid "Allow friends to nudge me and send me an email." -msgstr "" +msgstr "友達が私に合図とメールを送ることを許可する。" #: actions/emailsettings.php:185 msgid "I want to post notices by email." -msgstr "" +msgstr "メールでつぶやきを投稿したい。" #: actions/emailsettings.php:191 msgid "Publish a MicroID for my email address." -msgstr "" +msgstr "私のメールアドレスのためにMicroIDを発行してください。" #: actions/emailsettings.php:302 actions/imsettings.php:264 #: actions/othersettings.php:180 actions/smssettings.php:284 @@ -1149,7 +1122,7 @@ msgstr "設定が保存されました。" #: actions/emailsettings.php:320 msgid "No email address." -msgstr "" +msgstr "メールアドレスがありません。" #: actions/emailsettings.php:327 msgid "Cannot normalize that email address" @@ -1157,15 +1130,15 @@ msgstr "そのメールアドレスを正規化できません" #: actions/emailsettings.php:331 actions/siteadminpanel.php:157 msgid "Not a valid email address" -msgstr "" +msgstr "正しいメールアドレスではありません" #: actions/emailsettings.php:334 msgid "That is already your email address." -msgstr "" +msgstr "これはすでにあなたのメールアドレスです。" #: actions/emailsettings.php:337 msgid "That email address already belongs to another user." -msgstr "" +msgstr "このメールアドレスは既に他の人が使っています。" #: actions/emailsettings.php:353 actions/imsettings.php:317 #: actions/smssettings.php:337 @@ -1197,7 +1170,7 @@ msgstr "確認作業が中止されました。" #: actions/emailsettings.php:413 msgid "That is not your email address." -msgstr "" +msgstr "これはあなたのメールアドレスではありません。" #: actions/emailsettings.php:432 actions/imsettings.php:408 #: actions/smssettings.php:425 @@ -1206,47 +1179,48 @@ msgstr "アドレスは削除されました。" #: actions/emailsettings.php:446 actions/smssettings.php:518 msgid "No incoming email address." -msgstr "" +msgstr "入ってくるメールアドレスではありません。" #: actions/emailsettings.php:456 actions/emailsettings.php:478 #: actions/smssettings.php:528 actions/smssettings.php:552 msgid "Couldn't update user record." -msgstr "" +msgstr "利用者レコードを更新できません。" #: actions/emailsettings.php:459 actions/smssettings.php:531 msgid "Incoming email address removed." -msgstr "" +msgstr "入ってくるメールアドレスは削除されました。" #: actions/emailsettings.php:481 actions/smssettings.php:555 msgid "New incoming email address added." -msgstr "" +msgstr "新しい入ってくるメールアドレスが追加されました。" #: actions/favor.php:79 msgid "This notice is already a favorite!" -msgstr "" +msgstr "このつぶやきはすでにお気に入りです!" #: actions/favor.php:92 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "" +msgstr "お気に入りをやめる" #: actions/favorited.php:65 lib/popularnoticesection.php:88 #: lib/publicgroupnav.php:93 -#, fuzzy msgid "Popular notices" -msgstr "そのような通知はありません。" +msgstr "人気のつぶやき" #: actions/favorited.php:67 -#, fuzzy, php-format +#, php-format msgid "Popular notices, page %d" -msgstr "そのような通知はありません。" +msgstr "人気のつぶやき、ページ %d" #: actions/favorited.php:79 msgid "The most popular notices on the site right now." -msgstr "" +msgstr "現在サイトで最も人気のつぶやき。" #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." msgstr "" +"お気に入りのつぶやきがページに表示されます、しかしまだお気に入りがありませ" +"ん。" #: actions/favorited.php:153 msgid "" @@ -1265,56 +1239,51 @@ msgstr "" #: lib/personalgroupnav.php:115 #, php-format msgid "%s's favorite notices" -msgstr "" +msgstr "%s のお気に入りのつぶやき" #: actions/favoritesrss.php:115 -#, fuzzy, php-format +#, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "マイクロブログ by %s" +msgstr "%1$s による %2$s 上のお気に入りを更新!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "" +msgstr "フィーチャーされた利用者" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "" +msgstr "フィーチャーされた利用者、ページ %d" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "%s 上の優れた利用者の集まり" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "新しい通知" +msgstr "つぶやきIDがありません。" #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "新しい通知" +msgstr "つぶやきがありません。" #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "そのようなドキュメントはありません。" +msgstr "そのような添付はありません。" #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "そのようなドキュメントはありません。" +msgstr "アップロードされた添付はありません。" #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" msgstr "想定外のレスポンスです!" #: actions/finishremotesubscribe.php:80 -#, fuzzy msgid "User being listened to does not exist." -msgstr "リストされているユーザは存在しません。" +msgstr "存在しないように聴かれているユーザ。" #: actions/finishremotesubscribe.php:87 actions/remotesubscribe.php:59 msgid "You can use the local subscription!" @@ -1322,22 +1291,20 @@ msgstr "ローカルサブスクリプションを使用可能です!" #: actions/finishremotesubscribe.php:99 msgid "That user has blocked you from subscribing." -msgstr "" +msgstr "この利用者はフォローをブロックされています。" #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." msgstr "認証されていません。" #: actions/finishremotesubscribe.php:113 -#, fuzzy msgid "Could not convert request token to access token." msgstr "リクエストトークンをアクセストークンに変換できません" #: actions/finishremotesubscribe.php:118 -#, fuzzy msgid "Remote service uses unknown version of OMB protocol." -msgstr "予期せぬ OMB プロトコルのバージョンです。" +msgstr "" +"リモートサービスは、不明なバージョンの OMB プロトコルを使用しています。" #: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306 msgid "Error updating remote profile" @@ -1362,37 +1329,34 @@ msgstr "ファイルを読み込めません。" #: actions/makeadmin.php:71 actions/subedit.php:46 #: lib/profileformaction.php:70 msgid "No profile specified." -msgstr "" +msgstr "プロファイル記述がありません。" #: actions/groupblock.php:76 actions/groupunblock.php:76 #: actions/makeadmin.php:76 actions/subedit.php:53 actions/tagother.php:46 #: lib/profileformaction.php:77 msgid "No profile with that ID." -msgstr "" +msgstr "そのIDのプロファイルがありません。" #: actions/groupblock.php:81 actions/groupunblock.php:81 #: actions/makeadmin.php:81 msgid "No group specified." -msgstr "" +msgstr "グループ記述がありません。" #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "" +msgstr "管理者だけがグループメンバーをブロックできます。" #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "プロファイルがありません。" +msgstr "利用者はすでにグループからブロックされています。" #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "そのプロファイルは送信されていません。" +msgstr "利用者はグループのメンバーではありません。" #: actions/groupblock.php:136 actions/groupmembers.php:314 -#, fuzzy msgid "Block user from group" -msgstr "そのようなユーザはいません。" +msgstr "グループからブロックされた利用者" #: actions/groupblock.php:162 #, php-format @@ -1401,69 +1365,71 @@ msgid "" "be removed from the group, unable to post, and unable to subscribe to the " "group in the future." msgstr "" +"本当に利用者 %s をグループ %s からブロックしますか? 彼らはグループから削除さ" +"れる、投稿できない、グループをフォローできなくなります。" #: actions/groupblock.php:178 -#, fuzzy msgid "Do not block this user from this group" -msgstr "サーバへリダイレクトできません : %s" +msgstr "このグループからこの利用者をブロックしない" #: actions/groupblock.php:179 -#, fuzzy msgid "Block this user from this group" -msgstr "このユーザをブロックする" +msgstr "このグループからこのユーザをブロック" #: actions/groupblock.php:196 msgid "Database error blocking user from group." -msgstr "" +msgstr "グループから利用者ブロックのデータベースエラー" #: actions/groupbyid.php:74 msgid "No ID" -msgstr "" +msgstr "IDがありません" #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "" +msgstr "グループを編集するにはログインしていなければなりません。" #: actions/groupdesignsettings.php:141 msgid "Group design" -msgstr "" +msgstr "グループデザイン" #: actions/groupdesignsettings.php:152 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" +"あなたが選んだパレットの色とバックグラウンドイメージであなたのグループをカス" +"タマイズしてください。" #: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy msgid "Couldn't update your design." -msgstr "ユーザを更新できません" +msgstr "あなたのデザインを更新できません。" #: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 msgid "Unable to save your design settings!" -msgstr "" +msgstr "あなたのデザイン設定を保存できません!" #: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "設定が保存されました。" +msgstr "デザイン設定が保存されました。" #: actions/grouplogo.php:139 actions/grouplogo.php:192 msgid "Group logo" -msgstr "" +msgstr "グループロゴ" #: actions/grouplogo.php:150 #, php-format msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +"あなたのグループ用にロゴイメージをアップロードできます。最大ファイルサイズは " +"%s。" #: actions/grouplogo.php:362 msgid "Pick a square area of the image to be the logo." -msgstr "" +msgstr "ロゴとなるイメージの正方形を選択。" #: actions/grouplogo.php:396 msgid "Logo updated." @@ -1476,16 +1442,16 @@ msgstr "ロゴの更新に失敗しました。" #: actions/groupmembers.php:93 lib/groupnav.php:92 #, php-format msgid "%s group members" -msgstr "" +msgstr "%s グループメンバー" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "%s グループメンバー、ページ %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "このグループの利用者のリスト。" #: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 msgid "Admin" @@ -1497,31 +1463,30 @@ msgstr "ブロック" #: actions/groupmembers.php:441 msgid "Make user an admin of the group" -msgstr "" +msgstr "利用者をグループの管理者にする" #: actions/groupmembers.php:473 -#, fuzzy msgid "Make Admin" -msgstr "管理者" +msgstr "管理者にする" #: actions/groupmembers.php:473 msgid "Make this user an admin" -msgstr "" +msgstr "この利用者を管理者にする" #: actions/grouprss.php:133 -#, fuzzy, php-format +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "マイクロブログ by %s" +msgstr "%2$s 上の %1$s のメンバーから更新する" #: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" -msgstr "" +msgstr "グループ" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "グループ、ページ %d" #: actions/groups.php:90 #, php-format @@ -1534,17 +1499,17 @@ msgid "" msgstr "" #: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122 -#, fuzzy msgid "Create a new group" -msgstr "アカウントを作成" +msgstr "新しいグループを作成" #: actions/groupsearch.php:52 -#, fuzzy, php-format +#, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -"%%site.name%% の人を名前、場所、興味から検索。検索語はスペース区切る。3字以上" +"%%site.name%% のグループを、名前、場所、記述から検索。検索語はスペース区切" +"り。3字以上。" #: actions/groupsearch.php:58 msgid "Group search" @@ -1562,6 +1527,8 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" +"もし、あなたが探しているグループが見つからないとき、あなたは[それを作成](%%" +"action.newgroup%%)できます。" #: actions/groupsearch.php:85 #, php-format @@ -1569,15 +1536,16 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" +"なぜ[アカウント登録](%%action.register%%) や [グループ作成](%%action.newgroup" +"%%) しないのか!" #: actions/groupunblock.php:91 msgid "Only an admin can unblock group members." -msgstr "" +msgstr "管理者だけがグループメンバーをアンブロックできます。" #: actions/groupunblock.php:95 -#, fuzzy msgid "User is not blocked from group." -msgstr "プロファイルがありません。" +msgstr "利用者はグループからブロックされていません。" #: actions/groupunblock.php:128 actions/unblock.php:77 msgid "Error removing the block." @@ -1597,9 +1565,8 @@ msgstr "" "す。下のアドレスを設定して下さい。" #: actions/imsettings.php:89 -#, fuzzy msgid "IM is not available." -msgstr "このページはあなたが承認したメディアタイプでは利用できません。" +msgstr "IM が利用不可。" #: actions/imsettings.php:106 msgid "Current confirmed Jabber/GTalk address." @@ -1679,25 +1646,26 @@ msgstr "その Jabber ID はあなたのものではありません。" #: actions/inbox.php:59 #, php-format msgid "Inbox for %s - page %d" -msgstr "" +msgstr "%s の受信箱 - ページ %d" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "%s の受信箱" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." msgstr "" +"これはあなたの受信箱です、やってきたプライベートメッセージをリストします。" #: actions/invite.php:39 msgid "Invites have been disabled." -msgstr "" +msgstr "招待は無効にされました。" #: actions/invite.php:41 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "" +msgstr "他のユーザが%sを使用するよう誘うためにはログインしなければなりません。" #: actions/invite.php:72 #, php-format @@ -1706,15 +1674,15 @@ msgstr "不正なメールアドレス:%s'" #: actions/invite.php:110 msgid "Invitation(s) sent" -msgstr "" +msgstr "招待を送りました。" #: actions/invite.php:112 msgid "Invite new users" -msgstr "" +msgstr "新しい利用者を招待" #: actions/invite.php:128 msgid "You are already subscribed to these users:" -msgstr "" +msgstr "すでにこれらの利用者をフォローしています:" #: actions/invite.php:131 actions/invite.php:139 #, php-format @@ -1725,21 +1693,26 @@ msgstr "%s (%s)" msgid "" "These people are already users and you were automatically subscribed to them:" msgstr "" +"これらの人々は既にユーザです、そして、あなたは自動的に彼らにフォローされまし" +"た:" #: actions/invite.php:144 msgid "Invitation(s) sent to the following people:" -msgstr "" +msgstr "招待を以下の人々に送信しました:" #: actions/invite.php:150 msgid "" "You will be notified when your invitees accept the invitation and register " "on the site. Thanks for growing the community!" msgstr "" +"あなたの招待参加者が招待に応じて、サイトに登録すると、あなたに通知されるで" +"しょう。 コミュニティを広げてくださってありがとうございます!" #: actions/invite.php:162 msgid "" "Use this form to invite your friends and colleagues to use this service." msgstr "" +"友人や同僚がこのサービスを利用するようこのフォームを使用して誘ってください。" #: actions/invite.php:187 msgid "Email addresses" @@ -1751,11 +1724,11 @@ msgstr "招待する友人のアドレス (一行に一つ)" #: actions/invite.php:192 msgid "Personal message" -msgstr "" +msgstr "パーソナルメッセージ" #: actions/invite.php:194 msgid "Optionally add a personal message to the invitation." -msgstr "" +msgstr "任意に招待にパーソナルメッセージを加えてください。" #: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 msgid "Send" @@ -1997,12 +1970,11 @@ msgstr "" #: actions/newnotice.php:69 msgid "New notice" -msgstr "新しい通知" +msgstr "新しいつぶやき" #: actions/newnotice.php:216 -#, fuzzy msgid "Notice posted" -msgstr "通知" +msgstr "つぶやきを投稿しました" #: actions/noticesearch.php:68 #, php-format @@ -2059,7 +2031,7 @@ msgstr "" #: actions/oembed.php:79 actions/shownotice.php:100 msgid "Notice has no profile" -msgstr "通知にはプロファイルはありません。" +msgstr "つぶやきにはプロファイルはありません。" #: actions/oembed.php:86 actions/shownotice.php:180 #, php-format @@ -2081,11 +2053,11 @@ msgstr "" #: actions/opensearch.php:64 msgid "People Search" -msgstr "" +msgstr "ピープル検索" #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "" +msgstr "つぶやき検索" #: actions/othersettings.php:60 #, fuzzy @@ -2464,7 +2436,7 @@ msgstr "普段のタイムゾーンはどれですか?" #: actions/profilesettings.php:160 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "自分を購読している者を自動的に購読する (非人間に最適)" +msgstr "自分をフォローしている者を自動的にフォローする (BOTに最適)" #: actions/profilesettings.php:221 actions/register.php:223 #, php-format @@ -2861,9 +2833,8 @@ msgid "Remote subscribe" msgstr "リモートサブスクライブ" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" -msgstr "購読が許可" +msgstr "リモートユーザーのフォローを許可" #: actions/remotesubscribe.php:129 msgid "User nickname" @@ -2884,7 +2855,7 @@ msgstr "プロファイルサービスまたはマイクロブロギングサー #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 #: lib/userprofile.php:365 msgid "Subscribe" -msgstr "購読" +msgstr "フォロー" #: actions/remotesubscribe.php:159 msgid "Invalid profile URL (bad format)" @@ -3165,9 +3136,8 @@ msgid "Message from %1$s on %2$s" msgstr "" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "通知" +msgstr "つぶやきを削除しました。" #: actions/showstream.php:73 #, php-format @@ -3180,24 +3150,24 @@ msgid "%s, page %d" msgstr "" #: actions/showstream.php:122 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s tagged %s (RSS 1.0)" -msgstr "%sの通知フィード" +msgstr "%sの%sとタグ付けされたつぶやきフィード (RSS 1.0)" #: actions/showstream.php:129 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (RSS 1.0)" -msgstr "%sの通知フィード" +msgstr "%sのつぶやきフィード (RSS 1.0)" #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "%sの通知フィード" +msgstr "%sのつぶやきフィード (RSS 2.0)" #: actions/showstream.php:143 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "%sの通知フィード" +msgstr "%sのつぶやきフィード (Atom)" #: actions/showstream.php:148 #, php-format @@ -3296,9 +3266,8 @@ msgid "General" msgstr "" #: actions/siteadminpanel.php:256 -#, fuzzy msgid "Site name" -msgstr "新しい通知" +msgstr "サイト名" #: actions/siteadminpanel.php:257 msgid "The name of your site, like \"Yourcompany Microblog\"" @@ -3565,28 +3534,27 @@ msgid "Not a local user." msgstr "そのようなユーザはいません。" #: actions/subscribe.php:69 -#, fuzzy msgid "Subscribed" -msgstr "購読" +msgstr "フォローしている" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "購読者" +msgstr "フォローされている" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "%s フォローされている、ページ %d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "あなたの通知を聞いている人" +msgstr "あなたのつぶやきを聞いている人" #: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "%s の通知を聞いている人" +msgstr "%s のつぶやきを聞いている人" #: actions/subscribers.php:108 msgid "" @@ -3607,23 +3575,23 @@ msgid "" msgstr "" #: actions/subscriptions.php:52 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions" -msgstr "全てのサブスクリプション" +msgstr "%s フォローしている" #: actions/subscriptions.php:54 -#, fuzzy, php-format +#, php-format msgid "%s subscriptions, page %d" -msgstr "全てのサブスクリプション" +msgstr "%s フォローしている、ページ %d" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." -msgstr "あなたが通知を聞いている人" +msgstr "あなたがつぶやきを聞いている人" #: actions/subscriptions.php:69 #, php-format msgid "These are the people whose notices %s listens to." -msgstr "%s が通知を聞いている人" +msgstr "%s がつぶやきを聞いている人" #: actions/subscriptions.php:121 #, php-format @@ -3846,7 +3814,7 @@ msgstr "" #: actions/userauthorization.php:105 msgid "Authorize subscription" -msgstr "購読を許可" +msgstr "フォローを承認" #: actions/userauthorization.php:110 #, fuzzy @@ -3870,7 +3838,7 @@ msgstr "承認" #: actions/userauthorization.php:210 lib/subscribeform.php:115 #: lib/subscribeform.php:139 msgid "Subscribe to this user" -msgstr "このユーザーを購読" +msgstr "このユーザーをフォロー" #: actions/userauthorization.php:211 msgid "Reject" @@ -3887,7 +3855,7 @@ msgstr "認証のリクエストがありません。" #: actions/userauthorization.php:247 msgid "Subscription authorized" -msgstr "購読が許可" +msgstr "フォローが承認されました" #: actions/userauthorization.php:249 msgid "" @@ -3898,7 +3866,7 @@ msgstr "" #: actions/userauthorization.php:259 msgid "Subscription rejected" -msgstr "購読が拒否" +msgstr "フォローが拒否" #: actions/userauthorization.php:261 msgid "" @@ -4017,14 +3985,12 @@ msgid "DB error inserting hashtag: %s" msgstr "" #: classes/Notice.php:226 -#, fuzzy msgid "Problem saving notice. Too long." -msgstr "通知を保存する際に問題が発生しました。" +msgstr "つぶやきを保存する際に問題が発生しました。長すぎです。" #: classes/Notice.php:230 -#, fuzzy msgid "Problem saving notice. Unknown user." -msgstr "通知を保存する際に問題が発生しました。" +msgstr "つぶやきを保存する際に問題が発生しました。不明な利用者です。" #: classes/Notice.php:235 msgid "" @@ -4043,7 +4009,7 @@ msgstr "" #: classes/Notice.php:319 classes/Notice.php:344 msgid "Problem saving notice." -msgstr "通知を保存する際に問題が発生しました。" +msgstr "つぶやきを保存する際に問題が発生しました。" #: classes/Notice.php:1044 #, php-format @@ -4144,12 +4110,12 @@ msgstr "サブスクリプション" #: lib/action.php:444 lib/subgroupnav.php:105 msgid "Invite" -msgstr "" +msgstr "招待" #: lib/action.php:445 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" -msgstr "" +msgstr "友人や同僚が %s で加わるよう誘ってください。" #: lib/action.php:450 msgid "Logout" @@ -4184,18 +4150,16 @@ msgid "Search for people or text" msgstr "人々かテキストを検索" #: lib/action.php:485 -#, fuzzy msgid "Site notice" -msgstr "新しい通知" +msgstr "サイトつぶやき" #: lib/action.php:551 msgid "Local views" -msgstr "" +msgstr "ローカルビュー" #: lib/action.php:617 -#, fuzzy msgid "Page notice" -msgstr "新しい通知" +msgstr "ページつぶやき" #: lib/action.php:719 #, fuzzy @@ -4227,9 +4191,8 @@ msgid "Contact" msgstr "連絡先" #: lib/action.php:741 -#, fuzzy msgid "Badge" -msgstr "突く" +msgstr "バッジ" #: lib/action.php:769 msgid "StatusNet software license" @@ -4267,7 +4230,7 @@ msgstr "新しい通知" #: lib/action.php:799 msgid "All " -msgstr "" +msgstr "全て " #: lib/action.php:804 msgid "license." @@ -4275,7 +4238,7 @@ msgstr "ライセンス。" #: lib/action.php:1098 msgid "Pagination" -msgstr "" +msgstr "ページ化" #: lib/action.php:1107 #, fuzzy @@ -4324,11 +4287,11 @@ msgstr "メールアドレス確認" #: lib/attachmentlist.php:87 msgid "Attachments" -msgstr "" +msgstr "添付" #: lib/attachmentlist.php:265 msgid "Author" -msgstr "" +msgstr "作者" #: lib/attachmentlist.php:278 #, fuzzy @@ -4345,15 +4308,15 @@ msgstr "" #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" -msgstr "" +msgstr "コマンド結果" #: lib/channel.php:210 msgid "Command complete" -msgstr "" +msgstr "コマンド完了" #: lib/channel.php:221 msgid "Command failed" -msgstr "" +msgstr "コマンド失敗" #: lib/command.php:44 msgid "Sorry, this command is not yet implemented." @@ -4371,7 +4334,7 @@ msgstr "" #: lib/command.php:99 #, php-format msgid "Nudge sent to %s" -msgstr "" +msgstr "%s へ合図を送りました" #: lib/command.php:126 #, php-format @@ -4380,6 +4343,9 @@ msgid "" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"フォローしている: %1$s\n" +"フォローされている: %2$s\n" +"つぶやき: %3$s" #: lib/command.php:152 lib/command.php:399 lib/command.php:460 msgid "Notice with that id does not exist" @@ -4402,17 +4368,17 @@ msgstr "" #: lib/command.php:318 #, php-format msgid "Fullname: %s" -msgstr "" +msgstr "フルネーム: %s" #: lib/command.php:321 #, php-format msgid "Location: %s" -msgstr "" +msgstr "場所: %s" #: lib/command.php:324 #, php-format msgid "Homepage: %s" -msgstr "" +msgstr "ホームページ: %s" #: lib/command.php:327 #, php-format @@ -4640,7 +4606,7 @@ msgstr "" #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" -msgstr "この通知をお気に入りにする" +msgstr "このつぶやきをお気に入りにする" #: lib/favorform.php:140 msgid "Favor" @@ -5079,7 +5045,7 @@ msgstr "" #: lib/messageform.php:120 msgid "Send a direct notice" -msgstr "直接通知を送る" +msgstr "直接つぶやきを送る" #: lib/messageform.php:146 msgid "To" @@ -5091,7 +5057,7 @@ msgstr "利用可能な文字" #: lib/noticeform.php:158 msgid "Send a notice" -msgstr "通知を送る" +msgstr "つぶやきを送る" #: lib/noticeform.php:171 #, php-format @@ -5143,7 +5109,7 @@ msgstr "作成" #: lib/noticelist.php:577 msgid "Reply to this notice" -msgstr "この通知へ返信" +msgstr "このつぶやきへ返信" #: lib/noticelist.php:578 msgid "Reply" @@ -5179,9 +5145,8 @@ msgid "Error inserting remote profile" msgstr "リモートプロファイル追加エラー" #: lib/oauthstore.php:345 -#, fuzzy msgid "Duplicate notice" -msgstr "新しい通知" +msgstr "重なったつぶやき" #: lib/oauthstore.php:466 lib/subs.php:48 msgid "You have been banned from subscribing." @@ -5226,20 +5191,19 @@ msgstr "" #: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 msgid "Subscriptions" -msgstr "サブスクリプション" +msgstr "フォロー" #: lib/profileaction.php:126 msgid "All subscriptions" -msgstr "すべての購読" +msgstr "すべてのフォロー" #: lib/profileaction.php:140 lib/profileaction.php:201 lib/subgroupnav.php:90 msgid "Subscribers" -msgstr "購読者" +msgstr "フォローされている" #: lib/profileaction.php:157 -#, fuzzy msgid "All subscribers" -msgstr "購読者" +msgstr "すべてのフォローされている" #: lib/profileaction.php:178 msgid "User ID" @@ -5441,7 +5405,7 @@ msgstr "このユーザからのサブスクライブを解除する" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" -msgstr "サブスクライブ中止" +msgstr "フォロー中止" #: lib/userprofile.php:116 #, fuzzy diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index c861fdd5a..eb7cdfb3c 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:16+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:45+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 452b135db..96f199c79 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:19+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:48+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index ab0dd4b3a..eadbb8fc2 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:22+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:52+0000\n" "Language-Team: Norwegian (bokmål)‬\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 7bc63e9e0..0d7d9d58f 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:30+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:03+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -5479,9 +5479,8 @@ msgid "Popular" msgstr "Populair" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Deze mededeling herhalen" +msgstr "Deze mededeling herhalen?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 51576fda4..e327c5aa0 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:26+0000\n" +"PO-Revision-Date: 2009-12-28 08:10:58+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index d2e3acb75..f57cbd100 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -11,7 +11,7 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:34+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:06+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -1268,9 +1268,9 @@ msgid "Featured users, page %d" msgstr "Znani użytkownicy, strona %d" #: actions/featured.php:99 -#, fuzzy, php-format +#, php-format msgid "A selection of some great users on %s" -msgstr "Wybór znanych użytkowników na %s" +msgstr "Wybór znanych użytkowników w serwisie %s" #: actions/file.php:34 msgid "No notice ID." @@ -5414,9 +5414,8 @@ msgid "Popular" msgstr "Popularne" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Powtórz ten wpis" +msgstr "Powtórzyć ten wpis?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 34f7e5ab8..92f7def37 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:38+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:09+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 254cb0e2f..69329e074 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:41+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:12+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 6efb236c1..bcfc757be 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:44+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:15+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -5429,9 +5429,8 @@ msgid "Popular" msgstr "Популярное" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Повторить эту запись" +msgstr "Повторить эту запись?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/statusnet.po b/locale/statusnet.po index 6cb8e5749..3b094b0a6 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" +"POT-Creation-Date: 2009-12-28 08:09+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index ee58dff05..34606dc9d 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -10,11 +10,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:47+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:18+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 211d47108..c7b7aec8e 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:51+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:21+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 625341611..402ca048d 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -9,11 +9,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:54+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:24+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index ad2f107e9..32c26de54 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -2,6 +2,7 @@ # # Author@translatewiki.net: AS # Author@translatewiki.net: Boogie +# Author@translatewiki.net: Prima klasy4na # -- # This file is distributed under the same license as the StatusNet package. # @@ -10,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:57+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:27+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -5415,9 +5416,8 @@ msgid "Popular" msgstr "Популярне" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Вторувати цьому допису" +msgstr "Повторити цей допис?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 0cae40567..80dd9617d 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:43:59+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:29+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index fb77fe462..484166549 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -11,11 +11,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:44:02+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:32+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index fc8949a5c..95e296d04 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -8,11 +8,11 @@ msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-25 09:44:05+0000\n" +"PO-Revision-Date: 2009-12-28 08:11:35+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60380); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" -- cgit v1.2.3-54-g00ecf From 75fbec2fa336ac9b749fa273ac5a44c2fb211623 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 07:58:33 -0800 Subject: Add tools to clear flags Added a form to clear all flags for a profile, when showed on adminprofileflags list. Add an action to handle the form, and a right for the action. --- plugins/UserFlag/clearflag.php | 129 +++++++++++++++++++++++++++++++++++++ plugins/UserFlag/clearflagform.php | 92 ++++++++++++++++++++++++++ 2 files changed, 221 insertions(+) create mode 100644 plugins/UserFlag/clearflag.php create mode 100644 plugins/UserFlag/clearflagform.php diff --git a/plugins/UserFlag/clearflag.php b/plugins/UserFlag/clearflag.php new file mode 100644 index 000000000..58151d33c --- /dev/null +++ b/plugins/UserFlag/clearflag.php @@ -0,0 +1,129 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Action to clear flags for a profile + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class ClearflagAction extends ProfileFormAction +{ + /** + * Take arguments for running + * + * @param array $args $_REQUEST args + * + * @return boolean success flag + */ + + function prepare($args) + { + if (!parent::prepare($args)) { + return false; + } + + $user = common_current_user(); + + assert(!empty($user)); // checked above + assert(!empty($this->profile)); // checked above + + return true; + } + + /** + * Handle request + * + * Overriding the base Action's handle() here to deal check + * for Ajax and return an HXR response if necessary + * + * @param array $args $_REQUEST args; handled in prepare() + * + * @return void + */ + + function handle($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'POST') { + $this->handlePost(); + if (!$this->boolean('ajax')) { + $this->returnToArgs(); + } + } + } + + /** + * Handle POST + * + * @return void + */ + + function handlePost() + { + $ufp = new User_flag_profile(); + + $result = $ufp->query('UPDATE user_flag_profile ' . + 'SET cleared = now() ' . + 'WHERE cleared is null ' . + 'AND profile_id = ' . $this->profile->id); + + if ($result == false) { + throw new ServerException(sprintf(_("Couldn't clear flags for profile '%s'."), + $this->profile->nickname)); + } + + $ufp->free(); + + if ($this->boolean('ajax')) { + $this->ajaxResults(); + } + } + + function ajaxResults() { + header('Content-Type: text/xml;charset=utf-8'); + $this->xw->startDocument('1.0', 'UTF-8'); + $this->elementStart('html'); + $this->elementStart('head'); + $this->element('title', null, _('Flags cleared')); + $this->elementEnd('head'); + $this->elementStart('body'); + $this->element('p', 'cleared', _('Cleared')); + $this->elementEnd('body'); + $this->elementEnd('html'); + } +} + diff --git a/plugins/UserFlag/clearflagform.php b/plugins/UserFlag/clearflagform.php new file mode 100644 index 000000000..5ad6055d3 --- /dev/null +++ b/plugins/UserFlag/clearflagform.php @@ -0,0 +1,92 @@ +. + * + * @category Form + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR.'/lib/form.php'; + +/** + * Form for clearing profile flags + * + * @category Form + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class ClearFlagForm extends ProfileActionForm +{ + /** + * class of the form + * Action this form provides + * + * @return string class of the form + */ + + function formClass() + { + return 'form_entity_clearflag'; + } + + /** + * Action this form provides + * + * @return string Name of the action, lowercased. + */ + + function target() + { + return 'clearflag'; + } + + /** + * Title of the form + * + * @return string Title of the form, internationalized + */ + + function title() + { + return _('Clear'); + } + + /** + * Description of the form + * + * @return string description of the form, internationalized + */ + + function description() + { + return _('Clear all flags'); + } +} -- cgit v1.2.3-54-g00ecf From 2c2a82fda0b78422802a9d0b23afc765c2f5f52b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 08:19:22 -0800 Subject: add stuff for clearing flags to UserFlagPlugin --- plugins/UserFlag/UserFlagPlugin.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index b4f9bd783..78979ace2 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -44,6 +44,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { class UserFlagPlugin extends Plugin { const REVIEWFLAGS = 'UserFlagPlugin::reviewflags'; + const CLEARFLAGS = 'UserFlagPlugin::clearflags'; function onCheckSchema() { @@ -72,6 +73,7 @@ class UserFlagPlugin extends Plugin function onRouterInitialized($m) { $m->connect('main/flag/profile', array('action' => 'flagprofile')); + $m->connect('main/flag/clear', array('action' => 'clearflag')); $m->connect('admin/profile/flag', array('action' => 'adminprofileflag')); return true; } @@ -82,9 +84,11 @@ class UserFlagPlugin extends Plugin { case 'FlagprofileAction': case 'AdminprofileflagAction': + case 'ClearflagAction': require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); return false; case 'FlagProfileForm': + case 'ClearFlagForm': require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php')); return false; case 'User_flag_profile': @@ -152,10 +156,13 @@ class UserFlagPlugin extends Plugin } function onUserRightsCheck($user, $right, &$result) { - if ($right == self::REVIEWFLAGS) { + switch ($right) { + case self::REVIEWFLAGS: + case self::CLEARFLAGS: $result = $user->hasRole('moderator'); return false; // done processing! } + return true; // unchanged! } } -- cgit v1.2.3-54-g00ecf From 85b8b35f53258a95989a8679455e0b2fd72bc5f5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 08:19:56 -0800 Subject: clear flags and show flaggers in adminflagprofile --- plugins/UserFlag/adminprofileflag.php | 67 +++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/plugins/UserFlag/adminprofileflag.php b/plugins/UserFlag/adminprofileflag.php index b0888a31d..ab1a86ac4 100644 --- a/plugins/UserFlag/adminprofileflag.php +++ b/plugins/UserFlag/adminprofileflag.php @@ -182,6 +182,8 @@ class FlaggedProfileList extends ProfileList { class FlaggedProfileListItem extends ProfileListItem { + const MAX_FLAGGERS = 5; + var $user = null; var $r2args = null; @@ -252,5 +254,70 @@ class FlaggedProfileListItem extends ProfileListItem function showClearButton() { + if ($this->user->hasRight(UserFlagPlugin::CLEARFLAGS)) { + $this->out->elementStart('li', 'entity_clear'); + $cf = new ClearFlagForm($this->out, $this->profile, $this->r2args); + $cf->show(); + $this->out->elementEnd('li'); + } + } + + function endProfile() + { + $this->showFlaggersList(); + parent::endProfile(); + } + + function showFlaggersList() + { + $flaggers = array(); + + $ufp = new User_flag_profile(); + + $ufp->selectAdd(); + $ufp->selectAdd('user_id'); + $ufp->profile_id = $this->profile->id; + $ufp->orderBy('created'); + + if ($ufp->find()) { // XXX: this should always happen + while ($ufp->fetch()) { + $user = User::staticGet('id', $ufp->user_id); + if (!empty($user)) { // XXX: this would also be unusual + $flaggers[] = clone($user); + } + } + } + + $cnt = count($flaggers); + $others = 0; + + if ($cnt > self::MAX_FLAGGERS) { + $flaggers = array_slice($flaggers, 0, self::MAX_FLAGGERS); + $others = $cnt - self::MAX_FLAGGERS; + } + + $lnks = array(); + + foreach ($flaggers as $flagger) { + + $url = common_local_url('showstream', + array('nickname' => $flagger->nickname)); + + $lnks[] = XMLStringer::estring('a', array('href' => $url, + 'class' => 'flagger'), + $flagger->nickname); + } + + if ($cnt > 0) { + $text = _('Flagged by '); + $text .= implode(', ', $lnks); + if ($others > 0) { + $text .= sprintf(_(' and %d others'), $others); + } + + $this->out->elementStart('p', array('class' => 'flaggers')); + $this->out->raw($text); + $this->out->elementEnd('p'); + } } } -- cgit v1.2.3-54-g00ecf From ea23111a5611a3634faf3828f3f5c67867a460e3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 08:37:30 -0800 Subject: PHPCS-clean UserFlagPlugin --- plugins/UserFlag/UserFlagPlugin.php | 100 ++++++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 15 deletions(-) diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index 78979ace2..21af506a9 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -27,7 +27,7 @@ * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { +if (!defined('STATUSNET')) { exit(1); } @@ -46,6 +46,15 @@ class UserFlagPlugin extends Plugin const REVIEWFLAGS = 'UserFlagPlugin::reviewflags'; const CLEARFLAGS = 'UserFlagPlugin::clearflags'; + /** + * Hook for ensuring our tables are created + * + * Ensures that the user_flag_profile table exists + * and has the right columns. + * + * @return boolean hook return + */ + function onCheckSchema() { $schema = Schema::get(); @@ -65,40 +74,61 @@ class UserFlagPlugin extends Plugin return true; } - function onInitializePlugin() - { - // XXX: do something here? - return true; - } + /** + * Add our actions to the URL router + * + * @param Net_URL_Mapper $m URL mapper for this hit + * + * @return boolean hook return + */ - function onRouterInitialized($m) { + function onRouterInitialized($m) + { $m->connect('main/flag/profile', array('action' => 'flagprofile')); $m->connect('main/flag/clear', array('action' => 'clearflag')); $m->connect('admin/profile/flag', array('action' => 'adminprofileflag')); return true; } - function onAutoload($cls) + /** + * Auto-load our classes if called + * + * @param string $cls Class to load + * + * @return boolean hook return + */ + + function onAutoload($cls) { switch ($cls) { case 'FlagprofileAction': case 'AdminprofileflagAction': case 'ClearflagAction': - require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); + include_once INSTALLDIR.'/plugins/UserFlag/' . + strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; case 'FlagProfileForm': case 'ClearFlagForm': - require_once(INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php')); + include_once INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php'); return false; case 'User_flag_profile': - require_once(INSTALLDIR.'/plugins/UserFlag/'.$cls.'.php'); + include_once INSTALLDIR.'/plugins/UserFlag/'.$cls.'.php'; return false; default: return true; } } + /** + * Add a 'flag' button to profile page + * + * @param Action &$action The action being called + * @param Profile $profile Profile being shown + * + * @return boolean hook result + */ + function onEndProfilePageActionsElements(&$action, $profile) { $user = common_current_user(); @@ -111,8 +141,8 @@ class UserFlagPlugin extends Plugin $action->element('p', 'flagged', _('Flagged')); } else { $form = new FlagProfileForm($action, $profile, - array('action' => 'showstream', - 'nickname' => $profile->nickname)); + array('action' => 'showstream', + 'nickname' => $profile->nickname)); $form->show(); } @@ -122,6 +152,14 @@ class UserFlagPlugin extends Plugin return true; } + /** + * Add a 'flag' button to profiles in a list + * + * @param ProfileListItem $item item being shown + * + * @return boolean hook result + */ + function onEndProfileListItemActionElements($item) { $user = common_current_user(); @@ -142,6 +180,14 @@ class UserFlagPlugin extends Plugin return true; } + /** + * Add our plugin's CSS to page output + * + * @param Action $action action being shown + * + * @return boolean hook result + */ + function onEndShowStatusNetStyles($action) { $action->cssLink(common_path('plugins/UserFlag/userflag.css'), @@ -149,13 +195,37 @@ class UserFlagPlugin extends Plugin return true; } + /** + * Initialize any flagging buttons on the page + * + * @param Action $action action being shown + * + * @return boolean hook result + */ + function onEndShowScripts($action) { - $action->inlineScript('if ($(".form_entity_flag").length > 0) { SN.U.FormXHR($(".form_entity_flag")); }'); + $action->inlineScript('if ($(".form_entity_flag").length > 0) { '. + 'SN.U.FormXHR($(".form_entity_flag")); '. + '}'); return true; } - function onUserRightsCheck($user, $right, &$result) { + /** + * Check whether a user has one of our defined rights + * + * We define extra rights; this function checks to see if a + * user has one of them. + * + * @param User $user User being checked + * @param string $right Right we're checking + * @param boolean &$result out, result of the check + * + * @return boolean hook result + */ + + function onUserRightsCheck($user, $right, &$result) + { switch ($right) { case self::REVIEWFLAGS: case self::CLEARFLAGS: -- cgit v1.2.3-54-g00ecf From c8fd5403e5bfc3b9110042eb1573904625f607e1 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 08:45:21 -0800 Subject: PHPCS-clean adminprofileflags.php --- plugins/UserFlag/adminprofileflag.php | 99 ++++++++++++++++++++++++++++++++--- 1 file changed, 93 insertions(+), 6 deletions(-) diff --git a/plugins/UserFlag/adminprofileflag.php b/plugins/UserFlag/adminprofileflag.php index ab1a86ac4..17374927b 100644 --- a/plugins/UserFlag/adminprofileflag.php +++ b/plugins/UserFlag/adminprofileflag.php @@ -117,7 +117,14 @@ class AdminprofileflagAction extends Action $this->showPage(); } - function title() { + /** + * Title of this page + * + * @return string Title of the page + */ + + function title() + { return _('Flagged profiles'); } @@ -137,6 +144,12 @@ class AdminprofileflagAction extends Action $this->page, 'adminprofileflag'); } + /** + * Retrieve this action's profiles + * + * @return Profile $profile Profile query results + */ + function getProfiles() { $ufp = new User_flag_profile(); @@ -151,7 +164,7 @@ class AdminprofileflagAction extends Action $ufp->orderBy('flag_count DESC, profile_id DESC'); $offset = ($this->page-1) * PROFILES_PER_PAGE; - $limit = PROFILES_PER_PAGE + 1; + $limit = PROFILES_PER_PAGE + 1; $ufp->limit($offset, $limit); @@ -172,7 +185,27 @@ class AdminprofileflagAction extends Action } } -class FlaggedProfileList extends ProfileList { +/** + * Specialization of ProfileList to show flagging information + * + * Most of the hard part is done in FlaggedProfileListItem. + * + * @category Widget + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class FlaggedProfileList extends ProfileList +{ + /** + * Factory method for creating new list items + * + * @param Profile $profile Profile to create an item for + * + * @return ProfileListItem newly-created item + */ function newListItem($profile) { @@ -180,13 +213,29 @@ class FlaggedProfileList extends ProfileList { } } +/** + * Specialization of ProfileListItem to show flagging information + * + * @category Widget + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + class FlaggedProfileListItem extends ProfileListItem { const MAX_FLAGGERS = 5; - var $user = null; + var $user = null; var $r2args = null; + /** + * Overload parent's action list with our own moderation-oriented buttons + * + * @return void + */ + function showActions() { $this->user = common_current_user(); @@ -211,6 +260,12 @@ class FlaggedProfileListItem extends ProfileListItem $this->endActions(); } + /** + * Show a button to sandbox the profile + * + * @return void + */ + function showSandboxButton() { if ($this->user->hasRight(Right::SANDBOXUSER)) { @@ -226,6 +281,12 @@ class FlaggedProfileListItem extends ProfileListItem } } + /** + * Show a button to silence the profile + * + * @return void + */ + function showSilenceButton() { if ($this->user->hasRight(Right::SILENCEUSER)) { @@ -241,6 +302,12 @@ class FlaggedProfileListItem extends ProfileListItem } } + /** + * Show a button to delete user and profile + * + * @return void + */ + function showDeleteButton() { @@ -252,6 +319,12 @@ class FlaggedProfileListItem extends ProfileListItem } } + /** + * Show a button to clear flags + * + * @return void + */ + function showClearButton() { if ($this->user->hasRight(UserFlagPlugin::CLEARFLAGS)) { @@ -262,12 +335,24 @@ class FlaggedProfileListItem extends ProfileListItem } } + /** + * Overload parent function to add flaggers list + * + * @return void + */ + function endProfile() { $this->showFlaggersList(); parent::endProfile(); } + /** + * Show a list of people who've flagged this profile + * + * @return void + */ + function showFlaggersList() { $flaggers = array(); @@ -288,12 +373,12 @@ class FlaggedProfileListItem extends ProfileListItem } } - $cnt = count($flaggers); + $cnt = count($flaggers); $others = 0; if ($cnt > self::MAX_FLAGGERS) { $flaggers = array_slice($flaggers, 0, self::MAX_FLAGGERS); - $others = $cnt - self::MAX_FLAGGERS; + $others = $cnt - self::MAX_FLAGGERS; } $lnks = array(); @@ -310,7 +395,9 @@ class FlaggedProfileListItem extends ProfileListItem if ($cnt > 0) { $text = _('Flagged by '); + $text .= implode(', ', $lnks); + if ($others > 0) { $text .= sprintf(_(' and %d others'), $others); } -- cgit v1.2.3-54-g00ecf From df98ddff0c6daa6a94c71be11b7db683f6181482 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 09:06:38 -0800 Subject: phpcs-clean clearflag.php --- plugins/UserFlag/clearflag.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/plugins/UserFlag/clearflag.php b/plugins/UserFlag/clearflag.php index 58151d33c..bd6732e2d 100644 --- a/plugins/UserFlag/clearflag.php +++ b/plugins/UserFlag/clearflag.php @@ -89,6 +89,8 @@ class ClearflagAction extends ProfileFormAction /** * Handle POST * + * Executes the actions; deletes all flags + * * @return void */ @@ -102,8 +104,9 @@ class ClearflagAction extends ProfileFormAction 'AND profile_id = ' . $this->profile->id); if ($result == false) { - throw new ServerException(sprintf(_("Couldn't clear flags for profile '%s'."), - $this->profile->nickname)); + $msg = sprintf(_("Couldn't clear flags for profile '%s'."), + $this->profile->nickname); + throw new ServerException($msg); } $ufp->free(); @@ -113,7 +116,14 @@ class ClearflagAction extends ProfileFormAction } } - function ajaxResults() { + /** + * Return results in ajax form + * + * @return void + */ + + function ajaxResults() + { header('Content-Type: text/xml;charset=utf-8'); $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); @@ -126,4 +136,3 @@ class ClearflagAction extends ProfileFormAction $this->elementEnd('html'); } } - -- cgit v1.2.3-54-g00ecf From 4a5bac43c33ef0006b85eb39eda10de55985d52d Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 09:08:28 -0800 Subject: phpcs-clean flagprofile.php --- plugins/UserFlag/flagprofile.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/plugins/UserFlag/flagprofile.php b/plugins/UserFlag/flagprofile.php index 9bce7865b..55753f4e8 100644 --- a/plugins/UserFlag/flagprofile.php +++ b/plugins/UserFlag/flagprofile.php @@ -63,8 +63,7 @@ class FlagprofileAction extends ProfileFormAction assert(!empty($this->profile)); // checked above if (User_flag_profile::exists($this->profile->id, - $user->id)) - { + $user->id)) { $this->clientError(_('Flag already exists.')); return false; } @@ -72,7 +71,6 @@ class FlagprofileAction extends ProfileFormAction return true; } - /** * Handle request * @@ -114,8 +112,9 @@ class FlagprofileAction extends ProfileFormAction $ufp->created = common_sql_now(); if (!$ufp->insert()) { - throw new ServerException(sprintf(_("Couldn't flag profile '%s' for review."), - $this->profile->nickname)); + $msg = sprintf(_("Couldn't flag profile '%s' for review."), + $this->profile->nickname); + throw new ServerException($msg); } $ufp->free(); @@ -125,7 +124,14 @@ class FlagprofileAction extends ProfileFormAction } } - function ajaxResults() { + /** + * Return results as AJAX message + * + * @return void + */ + + function ajaxResults() + { header('Content-Type: text/xml;charset=utf-8'); $this->xw->startDocument('1.0', 'UTF-8'); $this->elementStart('html'); -- cgit v1.2.3-54-g00ecf From a80fa178726da3ff6d06272bd06f35afbfe2f757 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 09:15:07 -0800 Subject: phpcs-clean User_flag_profile as best as possible --- plugins/UserFlag/User_flag_profile.php | 59 ++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php index 30bd4ae68..b8f3f3fe1 100644 --- a/plugins/UserFlag/User_flag_profile.php +++ b/plugins/UserFlag/User_flag_profile.php @@ -1,5 +1,15 @@ + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * * StatusNet - the distributed open-source microblogging tool * Copyright (C) 2009, StatusNet, Inc. * @@ -23,6 +33,18 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; +/** + * Data class for profile flags + * + * A class representing a user flagging another profile for review. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + class User_flag_profile extends Memcached_DataObject { ###START_AUTOCODE @@ -40,7 +62,14 @@ class User_flag_profile extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function table() { + /** + * return table definition for DB_DataObject + * + * @return array array of column definitions + */ + + function table() + { return array( 'profile_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, 'user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, @@ -49,15 +78,39 @@ class User_flag_profile extends Memcached_DataObject ); } - function keys() { + /** + * return key definitions for DB_DataObject + * + * @return array key definitions + */ + + function keys() + { return array('profile_id' => 'N', 'user_id' => 'N'); } + /** + * Get a single object with multiple keys + * + * @param array $kv Map of key-value pairs + * + * @return User_flag_profile found object or null + */ + function &pkeyGet($kv) { return Memcached_DataObject::pkeyGet('User_flag_profile', $kv); } + /** + * Check if a flag exists for given profile and user + * + * @param integer $profile_id Profile to check for + * @param integer $user_id User to check for + * + * @return boolean true if exists, else false + */ + static function exists($profile_id, $user_id) { $ufp = User_flag_profile::pkeyGet(array('profile_id' => $profile_id, -- cgit v1.2.3-54-g00ecf From c07f22104094d26f7f6266c2b59f7999030fda1a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 10:42:31 -0800 Subject: check if other user exists before unsub --- classes/User.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/classes/User.php b/classes/User.php index 484dc8c82..6708d95b6 100644 --- a/classes/User.php +++ b/classes/User.php @@ -625,7 +625,11 @@ class User extends Memcached_DataObject // Cancel their subscription, if it exists - subs_unsubscribe_to($other->getUser(),$this->getProfile()); + $otherUser = User::staticGet('id', $other->id); + + if (!empty($otherUser)) { + subs_unsubscribe_to($otherUser, $this->getProfile()); + } $block->query('COMMIT'); -- cgit v1.2.3-54-g00ecf From c5de3262312f814bc44e596d9031c2df22420e27 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 10:42:55 -0800 Subject: events for blocking a user --- EVENTS.txt | 7 +++++++ actions/apiblockcreate.php | 13 ++++++++++--- actions/block.php | 8 ++++++-- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 96250f64c..42aecfaf9 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -640,3 +640,10 @@ EndLog: After writing to the logs - $msg - $filename +StartBlockProfile: when we're about to block +- $user: the person doing the block +- $profile: the person getting blocked, can be remote + +EndBlockProfile: when a block has succeeded +- $user: the person doing the block +- $profile: the person blocked, can be remote diff --git a/actions/apiblockcreate.php b/actions/apiblockcreate.php index e79dec32d..c26485f59 100644 --- a/actions/apiblockcreate.php +++ b/actions/apiblockcreate.php @@ -109,9 +109,16 @@ class ApiBlockCreateAction extends ApiAuthAction return; } - if ($this->user->hasBlocked($this->other) - || $this->user->block($this->other) - ) { + if (!$this->user->hasBlocked($this->other)) { + if (Event::handle('StartBlockProfile', array($this->user, $this->other))) { + $result = $this->user->block($this->other); + if ($result) { + Event::handle('EndBlockProfile', array($this->user, $this->other)); + } + } + } + + if ($this->user->hasBlocked($this->other)) { $this->initDocument($this->format); $this->showProfile($this->other, $this->format); $this->endDocument($this->format); diff --git a/actions/block.php b/actions/block.php index 71a34e087..5fae45dff 100644 --- a/actions/block.php +++ b/actions/block.php @@ -156,7 +156,12 @@ class BlockAction extends ProfileFormAction { $cur = common_current_user(); - $result = $cur->block($this->profile); + if (Event::handle('StartBlockProfile', array($cur, $this->profile))) { + $result = $cur->block($this->profile); + if ($result) { + Event::handle('EndBlockProfile', array($cur, $this->profile)); + } + } if (!$result) { $this->serverError(_('Failed to save block information.')); @@ -164,4 +169,3 @@ class BlockAction extends ProfileFormAction } } } - -- cgit v1.2.3-54-g00ecf From 2ae04bb6d598c74763aca79ab52172934158be46 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 10:50:12 -0800 Subject: add events for unblocking a profile --- EVENTS.txt | 8 ++++++++ actions/apiblockdestroy.php | 13 ++++++++++--- actions/unblock.php | 13 +++++++++++-- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/EVENTS.txt b/EVENTS.txt index 42aecfaf9..64e345b69 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -647,3 +647,11 @@ StartBlockProfile: when we're about to block EndBlockProfile: when a block has succeeded - $user: the person doing the block - $profile: the person blocked, can be remote + +StartUnblockProfile: when we're about to unblock +- $user: the person doing the unblock +- $profile: the person getting unblocked, can be remote + +EndUnblockProfile: when an unblock has succeeded +- $user: the person doing the unblock +- $profile: the person unblocked, can be remote diff --git a/actions/apiblockdestroy.php b/actions/apiblockdestroy.php index 328f18ab0..666f308f4 100644 --- a/actions/apiblockdestroy.php +++ b/actions/apiblockdestroy.php @@ -97,9 +97,16 @@ class ApiBlockDestroyAction extends ApiAuthAction return; } - if (!$this->user->hasBlocked($this->other) - || $this->user->unblock($this->other) - ) { + if ($this->user->hasBlocked($this->other)) { + if (Event::handle('StartUnblockProfile', array($this->user, $this->other))) { + $result = $this->user->unblock($this->other); + if ($result) { + Event::handle('EndUnblockProfile', array($this->user, $this->other)); + } + } + } + + if (!$this->user->hasBlocked($this->other)) { $this->initDocument($this->format); $this->showProfile($this->other, $this->format); $this->endDocument($this->format); diff --git a/actions/unblock.php b/actions/unblock.php index c60458cd3..0f63e1dae 100644 --- a/actions/unblock.php +++ b/actions/unblock.php @@ -71,8 +71,17 @@ class UnblockAction extends ProfileFormAction function handlePost() { - $cur = common_current_user(); - $result = $cur->unblock($this->profile); + $cur = common_current_user(); + + $result = false; + + if (Event::handle('StartUnblockProfile', array($cur, $this->profile))) { + $result = $cur->unblock($this->profile); + if ($result) { + Event::handle('EndUnblockProfile', array($cur, $this->profile)); + } + } + if (!$result) { $this->serverError(_('Error removing the block.')); return; -- cgit v1.2.3-54-g00ecf From 6d3e6b42849ad14b15cb4c41c4f8baac45e58df0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 10:58:49 -0800 Subject: move flag creation to a method of data object --- plugins/UserFlag/User_flag_profile.php | 19 +++++++++++++++++++ plugins/UserFlag/flagprofile.php | 14 ++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php index b8f3f3fe1..658259452 100644 --- a/plugins/UserFlag/User_flag_profile.php +++ b/plugins/UserFlag/User_flag_profile.php @@ -118,4 +118,23 @@ class User_flag_profile extends Memcached_DataObject return !empty($ufp); } + + static function create($user_id, $profile_id) + { + $ufp = new User_flag_profile(); + + $ufp->profile_id = $profile_id; + $ufp->user_id = $user_id; + $ufp->created = common_sql_now(); + + if (!$ufp->insert()) { + $msg = sprintf(_("Couldn't flag profile '%d' for review."), + $profile_id); + throw new ServerException($msg); + } + + $ufp->free(); + + return true; + } } diff --git a/plugins/UserFlag/flagprofile.php b/plugins/UserFlag/flagprofile.php index 55753f4e8..2d0f0abb9 100644 --- a/plugins/UserFlag/flagprofile.php +++ b/plugins/UserFlag/flagprofile.php @@ -105,19 +105,9 @@ class FlagprofileAction extends ProfileFormAction assert(!empty($user)); assert(!empty($this->profile)); - $ufp = new User_flag_profile(); + // throws an exception on error - $ufp->profile_id = $this->profile->id; - $ufp->user_id = $user->id; - $ufp->created = common_sql_now(); - - if (!$ufp->insert()) { - $msg = sprintf(_("Couldn't flag profile '%s' for review."), - $this->profile->nickname); - throw new ServerException($msg); - } - - $ufp->free(); + User_flag_profile::create($user->id, $this->profile->id); if ($this->boolean('ajax')) { $this->ajaxResults(); -- cgit v1.2.3-54-g00ecf From d9efeb6ac3810ef2ed7da6a274c3fc5ef1cfd5d7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 11:02:44 -0800 Subject: optionally flag a profile for review when blocked --- plugins/UserFlag/UserFlagPlugin.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index 21af506a9..0fca5f9cf 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -46,6 +46,8 @@ class UserFlagPlugin extends Plugin const REVIEWFLAGS = 'UserFlagPlugin::reviewflags'; const CLEARFLAGS = 'UserFlagPlugin::clearflags'; + public $flagOnBlock = true; + /** * Hook for ensuring our tables are created * @@ -235,4 +237,23 @@ class UserFlagPlugin extends Plugin return true; // unchanged! } + + /** + * Optionally flag profile when a block happens + * + * We optionally add a flag when a profile has been blocked + * + * @param User $user User doing the block + * @param Profile $profile Profile being blocked + * + * @return boolean hook result + */ + + function onEndBlockProfile($user, $profile) + { + if ($this->flagOnBlock) { + User_flag_profile::create($user->id, $profile->id); + } + return true; + } } -- cgit v1.2.3-54-g00ecf From b5be659af0fc943d6f7893d1b7937493ca44c597 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 28 Dec 2009 12:27:28 -0800 Subject: Drop the Google Client API-based AJAX geolocation lookup shim -- it fails to ask for user permission, causing us quite a bit of difficulty. --- js/geometa.js | 123 +++------------------------------------------------------- 1 file changed, 5 insertions(+), 118 deletions(-) diff --git a/js/geometa.js b/js/geometa.js index 21deb1885..87e3c99a1 100644 --- a/js/geometa.js +++ b/js/geometa.js @@ -1,4 +1,4 @@ -// A shim to implement the W3C Geolocation API Specification using Gears or the Ajax API +// A shim to implement the W3C Geolocation API Specification using Gears if (typeof navigator.geolocation == "undefined" || navigator.geolocation.shim ) (function(){ // -- BEGIN GEARS_INIT @@ -96,122 +96,9 @@ var GearsGeoLocation = (function() { }; }); -var AjaxGeoLocation = (function() { - // -- PRIVATE - var loading = false; - var loadGoogleLoader = function() { - if (!hasGoogleLoader() && !loading) { - loading = true; - var s = document.createElement('script'); - s.src = (document.location.protocol == "https:"?"https://":"http://") + 'www.google.com/jsapi?callback=_google_loader_apiLoaded'; - s.type = "text/javascript"; - document.getElementsByTagName('body')[0].appendChild(s); - } - }; - - var queue = []; - var addLocationQueue = function(callback) { - queue.push(callback); - } - - var runLocationQueue = function() { - if (hasGoogleLoader()) { - while (queue.length > 0) { - var call = queue.pop(); - call(); - } - } - } - - window['_google_loader_apiLoaded'] = function() { - runLocationQueue(); - } - - var hasGoogleLoader = function() { - return (window['google'] && google['loader']); - } - - var checkGoogleLoader = function(callback) { - if (hasGoogleLoader()) return true; - - addLocationQueue(callback); - - loadGoogleLoader(); - - return false; - }; - - loadGoogleLoader(); // start to load as soon as possible just in case - - // -- PUBLIC - return { - shim: true, - - type: "ClientLocation", - - lastPosition: null, - - getCurrentPosition: function(successCallback, errorCallback, options) { - var self = this; - if (!checkGoogleLoader(function() { - self.getCurrentPosition(successCallback, errorCallback, options); - })) return; - - if (google.loader.ClientLocation) { - var cl = google.loader.ClientLocation; - - var position = { - coords: { - latitude: cl.latitude, - longitude: cl.longitude, - altitude: null, - accuracy: 43000, // same as Gears accuracy over wifi? - altitudeAccuracy: null, - heading: null, - speed: null, - }, - // extra info that is outside of the bounds of the core API - address: { - city: cl.address.city, - country: cl.address.country, - country_code: cl.address.country_code, - region: cl.address.region - }, - timestamp: new Date() - }; - - successCallback(position); - - this.lastPosition = position; - } else if (errorCallback === "function") { - errorCallback({ code: 3, message: "Using the Google ClientLocation API and it is not able to calculate a location."}); - } - }, - - watchPosition: function(successCallback, errorCallback, options) { - this.getCurrentPosition(successCallback, errorCallback, options); - - var self = this; - var watchId = setInterval(function() { - self.getCurrentPosition(successCallback, errorCallback, options); - }, 10000); - - return watchId; - }, - - clearWatch: function(watchId) { - clearInterval(watchId); - }, - - getPermission: function(siteName, imageUrl, extraMessage) { - // for now just say yes :) - return true; - } - - }; -}); - -// If you have Gears installed use that, else use Ajax ClientLocation -navigator.geolocation = (window.google && google.gears) ? GearsGeoLocation() : AjaxGeoLocation(); +// If you have Gears installed use that +if (window.google && google.gears) { + navigator.geolocation = GearsGeoLocation(); +} })(); -- cgit v1.2.3-54-g00ecf From 749b8b5b8ca4d1c39d350879aadddbdb9d8b71d5 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 28 Dec 2009 12:27:28 -0800 Subject: Drop the Google Client API-based AJAX geolocation lookup shim -- it fails to ask for user permission, causing us quite a bit of difficulty. --- js/geometa.js | 123 +++------------------------------------------------------- 1 file changed, 5 insertions(+), 118 deletions(-) diff --git a/js/geometa.js b/js/geometa.js index 21deb1885..87e3c99a1 100644 --- a/js/geometa.js +++ b/js/geometa.js @@ -1,4 +1,4 @@ -// A shim to implement the W3C Geolocation API Specification using Gears or the Ajax API +// A shim to implement the W3C Geolocation API Specification using Gears if (typeof navigator.geolocation == "undefined" || navigator.geolocation.shim ) (function(){ // -- BEGIN GEARS_INIT @@ -96,122 +96,9 @@ var GearsGeoLocation = (function() { }; }); -var AjaxGeoLocation = (function() { - // -- PRIVATE - var loading = false; - var loadGoogleLoader = function() { - if (!hasGoogleLoader() && !loading) { - loading = true; - var s = document.createElement('script'); - s.src = (document.location.protocol == "https:"?"https://":"http://") + 'www.google.com/jsapi?callback=_google_loader_apiLoaded'; - s.type = "text/javascript"; - document.getElementsByTagName('body')[0].appendChild(s); - } - }; - - var queue = []; - var addLocationQueue = function(callback) { - queue.push(callback); - } - - var runLocationQueue = function() { - if (hasGoogleLoader()) { - while (queue.length > 0) { - var call = queue.pop(); - call(); - } - } - } - - window['_google_loader_apiLoaded'] = function() { - runLocationQueue(); - } - - var hasGoogleLoader = function() { - return (window['google'] && google['loader']); - } - - var checkGoogleLoader = function(callback) { - if (hasGoogleLoader()) return true; - - addLocationQueue(callback); - - loadGoogleLoader(); - - return false; - }; - - loadGoogleLoader(); // start to load as soon as possible just in case - - // -- PUBLIC - return { - shim: true, - - type: "ClientLocation", - - lastPosition: null, - - getCurrentPosition: function(successCallback, errorCallback, options) { - var self = this; - if (!checkGoogleLoader(function() { - self.getCurrentPosition(successCallback, errorCallback, options); - })) return; - - if (google.loader.ClientLocation) { - var cl = google.loader.ClientLocation; - - var position = { - coords: { - latitude: cl.latitude, - longitude: cl.longitude, - altitude: null, - accuracy: 43000, // same as Gears accuracy over wifi? - altitudeAccuracy: null, - heading: null, - speed: null, - }, - // extra info that is outside of the bounds of the core API - address: { - city: cl.address.city, - country: cl.address.country, - country_code: cl.address.country_code, - region: cl.address.region - }, - timestamp: new Date() - }; - - successCallback(position); - - this.lastPosition = position; - } else if (errorCallback === "function") { - errorCallback({ code: 3, message: "Using the Google ClientLocation API and it is not able to calculate a location."}); - } - }, - - watchPosition: function(successCallback, errorCallback, options) { - this.getCurrentPosition(successCallback, errorCallback, options); - - var self = this; - var watchId = setInterval(function() { - self.getCurrentPosition(successCallback, errorCallback, options); - }, 10000); - - return watchId; - }, - - clearWatch: function(watchId) { - clearInterval(watchId); - }, - - getPermission: function(siteName, imageUrl, extraMessage) { - // for now just say yes :) - return true; - } - - }; -}); - -// If you have Gears installed use that, else use Ajax ClientLocation -navigator.geolocation = (window.google && google.gears) ? GearsGeoLocation() : AjaxGeoLocation(); +// If you have Gears installed use that +if (window.google && google.gears) { + navigator.geolocation = GearsGeoLocation(); +} })(); -- cgit v1.2.3-54-g00ecf From dd0aaac70ec092edd38b53285ac74a4ad36e7c1e Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 12:42:22 -0800 Subject: First version of blacklist plugin First version of blacklist plugin. Replaces custom code in identi.ca's config.php, which was getting scary and long. Also correctly handles changed nicknames or URLs in profile settings and using 'forbidden' URLs in notice text. --- plugins/Blacklist/BlacklistPlugin.php | 203 ++++++++++++++++++++++++++++++++++ 1 file changed, 203 insertions(+) create mode 100644 plugins/Blacklist/BlacklistPlugin.php diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php new file mode 100644 index 000000000..655b0926b --- /dev/null +++ b/plugins/Blacklist/BlacklistPlugin.php @@ -0,0 +1,203 @@ +. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Plugin to prevent use of nicknames or URLs on a blacklist + * + * @category Plugin + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class BlacklistPlugin extends Plugin +{ + public $nicknames = array(); + public $urls = array(); + + /** + * Hook registration to prevent blacklisted homepages or nicknames + * + * Throws an exception if there's a blacklisted homepage or nickname. + * + * @param Action $action Action being called (usually register) + * + * @return boolean hook value + */ + + function onStartRegistrationTry($action) + { + $homepage = strtolower($action->trimmed('homepage')); + + if (!empty($homepage)) { + if (!$this->_checkUrl($homepage)) { + $msg = sprintf(_m("You may not register with homepage '%s'"), + $homepage); + throw new ClientException($msg); + } + } + + $nickname = strtolower($action->trimmed('nickname')); + + if (!empty($nickname)) { + if (!$this->_checkNickname($nickname)) { + $msg = sprintf(_m("You may not register with nickname '%s'"), + $nickname); + throw new ClientException($msg); + } + } + + return true; + } + + /** + * Hook profile update to prevent blacklisted homepages or nicknames + * + * Throws an exception if there's a blacklisted homepage or nickname. + * + * @param Action $action Action being called (usually register) + * + * @return boolean hook value + */ + + function onStartProfileSaveForm($action) + { + $homepage = strtolower($action->trimmed('homepage')); + + if (!empty($homepage)) { + if (!$this->_checkUrl($homepage)) { + $msg = sprintf(_m("You may not use homepage '%s'"), + $homepage); + throw new ClientException($msg); + } + } + + $nickname = strtolower($action->trimmed('nickname')); + + if (!empty($nickname)) { + if (!$this->_checkNickname($nickname)) { + $msg = sprintf(_m("You may not use nickname '%s'"), + $nickname); + throw new ClientException($msg); + } + } + + return true; + } + + /** + * Hook notice save to prevent blacklisted urls + * + * Throws an exception if there's a blacklisted url in the content. + * + * @param Notice &$notice Notice being saved + * + * @return boolean hook value + */ + + function onStartNoticeSave(&$notice) + { + common_replace_urls_callback($notice->content, + array($this, 'checkNoticeUrl')); + return true; + } + + /** + * Helper callback for notice save + * + * Throws an exception if there's a blacklisted url in the content. + * + * @param string $url URL in the notice content + * + * @return boolean hook value + */ + + function checkNoticeUrl($url) + { + // It comes in special'd, so we unspecial it + // before comparing against patterns + + $url = htmlspecialchars_decode($url); + + if (!$this->_checkUrl($url)) { + $msg = sprintf(_m("You may not use url '%s' in notices"), + $url); + throw new ClientException($msg); + } + + return $url; + } + + /** + * Helper for checking URLs + * + * Checks an URL against our patterns for a match. + * + * @param string $url URL to check + * + * @return boolean true means it's OK, false means it's bad + */ + + private function _checkUrl($url) + { + foreach ($this->urls as $pattern) { + if (preg_match("/$pattern/", $url)) { + return false; + } + } + + return true; + } + + /** + * Helper for checking nicknames + * + * Checks a nickname against our patterns for a match. + * + * @param string $nickname nickname to check + * + * @return boolean true means it's OK, false means it's bad + */ + + private function _checkNickname($nickname) + { + foreach ($this->nicknames as $pattern) { + if (preg_match("/$pattern/", $nickname)) { + return false; + } + } + + return true; + } +} -- cgit v1.2.3-54-g00ecf From 8d4e617d4e36fdcee7c2536085e5d2b13449e14a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:53:28 -0800 Subject: add table user_location_prefs --- db/statusnet.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/db/statusnet.sql b/db/statusnet.sql index 6b3c2ca06..94b03df63 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -587,3 +587,12 @@ create table login_token ( constraint primary key (user_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +create table user_location_prefs ( + user_id integer not null comment 'user who has the preference' references user (id), + share_location tinyint default 1 comment 'Whether to share location data', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (user_id) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + -- cgit v1.2.3-54-g00ecf From b141f7aea5be3ad66d51d0ec958b2c342bcf489f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:54:09 -0800 Subject: Add user_location_prefs to upgrade script --- db/08to09.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/db/08to09.sql b/db/08to09.sql index 28ec3ec16..d9c25bc72 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -84,3 +84,13 @@ create table login_token ( constraint primary key (user_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +create table user_location_prefs ( + user_id integer not null comment 'user who has the preference' references user (id), + share_location tinyint default 1 comment 'Whether to share location data', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (user_id) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + -- cgit v1.2.3-54-g00ecf From c32682413530e5f2f4a85bd9397c533ba17f7e86 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:59:03 -0800 Subject: add user-location-prefs data objects --- classes/User_location_prefs.php | 48 +++++++++++++++++++++++++++++++++++++++++ classes/statusnet.ini | 12 +++++++++-- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100755 classes/User_location_prefs.php diff --git a/classes/User_location_prefs.php b/classes/User_location_prefs.php new file mode 100755 index 000000000..52cb254ba --- /dev/null +++ b/classes/User_location_prefs.php @@ -0,0 +1,48 @@ +. + * + * @category Data + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +class User_location_prefs extends Memcached_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'user_location_prefs'; // table name + public $user_id; // int(4) primary_key not_null + public $share_location; // tinyint(1) default_1 + public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 + public $modified; // timestamp not_null default_CURRENT_TIMESTAMP + + /* Static get */ + function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_location_prefs',$k,$v); } + + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE +} diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 2cc37dbfe..ac69403a4 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -1,4 +1,3 @@ - [avatar] profile_id = 129 original = 17 @@ -564,4 +563,13 @@ modified = 384 [user_openid__keys] trustroot = K -user_id = K \ No newline at end of file +user_id = K + +[user_location_prefs] +user_id = 129 +share_location = 17 +created = 142 +modified = 384 + +[user_location_prefs__keys] +user_id = K -- cgit v1.2.3-54-g00ecf From bbf516b96594770c5dc0dea7f9b15937d7c9a237 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:59:31 -0800 Subject: turn off exe bits --- classes/User_location_prefs.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 classes/User_location_prefs.php diff --git a/classes/User_location_prefs.php b/classes/User_location_prefs.php old mode 100755 new mode 100644 -- cgit v1.2.3-54-g00ecf From bb93d6b1c7c697891baca7082261ee694727f161 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:21:07 -0800 Subject: remove namespace setting from location; it's unused --- actions/newnotice.php | 43 ++++++++++++++++++++++++------------------- actions/profilesettings.php | 5 +++++ classes/User.php | 16 ++++++++++++++++ lib/default.php | 2 +- 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/actions/newnotice.php b/actions/newnotice.php index c014f1781..8591522dc 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -164,19 +164,6 @@ class NewnoticeAction extends Action $replyto = 'false'; } - $lat = $this->trimmed('lat'); - $lon = $this->trimmed('lon'); - $location_id = $this->trimmed('location_id'); - $location_ns = $this->trimmed('location_ns'); - - if (!empty($lat) && !empty($lon) && empty($location_id)) { - $location = Location::fromLatLon($lat, $lon); - if (!empty($location)) { - $location_id = $location->location_id; - $location_ns = $location->location_ns; - } - } - $upload = null; $upload = MediaFile::fromUpload('attach'); @@ -195,12 +182,30 @@ class NewnoticeAction extends Action } } - $notice = Notice::saveNew($user->id, $content_shortened, 'web', - array('reply_to' => ($replyto == 'false') ? null : $replyto, - 'lat' => $lat, - 'lon' => $lon, - 'location_id' => $location_id, - 'location_ns' => $location_ns)); + $options = array('reply_to' => ($replyto == 'false') ? null : $replyto); + + if ($user->shareLocation()) { + + $lat = $this->trimmed('lat'); + $lon = $this->trimmed('lon'); + $location_id = $this->trimmed('location_id'); + $location_ns = $this->trimmed('location_ns'); + + if (!empty($lat) && !empty($lon) && empty($location_id)) { + $location = Location::fromLatLon($lat, $lon); + if (!empty($location)) { + $location_id = $location->location_id; + $location_ns = $location->location_ns; + } + } + + $options['lat'] = $lat; + $options['lon'] = $lon; + $options['location_id'] = $location_id; + $options['location_ns'] = $location_ns; + } + + $notice = Notice::saveNew($user->id, $content_shortened, 'web', $options); if (isset($upload)) { $upload->attachToNotice($notice); diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 359664096..58bf838d7 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -133,6 +133,11 @@ class ProfilesettingsAction extends AccountSettingsAction ($this->arg('location')) ? $this->arg('location') : $profile->location, _('Where you are, like "City, State (or Region), Country"')); $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('sharelocation', _('Share my current location when posting notices'), + ($this->arg('sharelocation')) ? + $this->arg('sharelocation') : $user->shareLocation()); + $this->elementEnd('li'); Event::handle('EndProfileFormData', array($this)); $this->elementStart('li'); $this->input('tags', _('Tags'), diff --git a/classes/User.php b/classes/User.php index 6708d95b6..2bcb7c2a0 100644 --- a/classes/User.php +++ b/classes/User.php @@ -996,4 +996,20 @@ class User extends Memcached_DataObject return $ids; } + + function shareLocation() + { + $share = true; + + $prefs = User_location_prefs::staticGet('user_id', $this->id); + + if (empty($prefs)) { + $share = common_config('location', 'share'); + } else { + $share = $prefs->share_location; + $prefs->free(); + } + + return $share; + } } diff --git a/lib/default.php b/lib/default.php index 42d4623b1..b5eda7b2c 100644 --- a/lib/default.php +++ b/lib/default.php @@ -226,7 +226,7 @@ $default = 'message' => array('contentlimit' => null), 'location' => - array('namespace' => 1), // 1 = geonames, 2 = Yahoo Where on Earth + array(), 'omb' => array('timeout' => 5), // HTTP request timeout in seconds when contacting remote hosts for OMB updates 'logincommand' => -- cgit v1.2.3-54-g00ecf From 29a1669c01135faf125b2e53718a4112f14525fd Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:43:14 -0800 Subject: user_id is primary key for user_location_prefs --- classes/statusnet.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/statusnet.ini b/classes/statusnet.ini index ac69403a4..35a000aac 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -572,4 +572,5 @@ created = 142 modified = 384 [user_location_prefs__keys] -user_id = K +user_id = N + -- cgit v1.2.3-54-g00ecf From 39bdda9c7e7ee7571298c84c406a9dd74805f050 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:43:34 -0800 Subject: More configuration options for location sharing --- classes/User.php | 26 +++++++++++++++++--------- lib/default.php | 3 ++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/classes/User.php b/classes/User.php index 2bcb7c2a0..34151778c 100644 --- a/classes/User.php +++ b/classes/User.php @@ -999,17 +999,25 @@ class User extends Memcached_DataObject function shareLocation() { - $share = true; + $cfg = common_config('location', 'share'); - $prefs = User_location_prefs::staticGet('user_id', $this->id); + if ($cfg == 'always') { + return true; + } else if ($cfg == 'never') { + return false; + } else { // user + $share = true; - if (empty($prefs)) { - $share = common_config('location', 'share'); - } else { - $share = $prefs->share_location; - $prefs->free(); - } + $prefs = User_location_prefs::staticGet('user_id', $this->id); - return $share; + if (empty($prefs)) { + $share = common_config('location', 'sharedefault'); + } else { + $share = $prefs->share_location; + $prefs->free(); + } + + return $share; + } } } diff --git a/lib/default.php b/lib/default.php index b5eda7b2c..8a70ed3fa 100644 --- a/lib/default.php +++ b/lib/default.php @@ -226,7 +226,8 @@ $default = 'message' => array('contentlimit' => null), 'location' => - array(), + array('share' => 'user', // whether to share location; 'always', 'user', 'never' + 'sharedefault' => true), 'omb' => array('timeout' => 5), // HTTP request timeout in seconds when contacting remote hosts for OMB updates 'logincommand' => -- cgit v1.2.3-54-g00ecf From e009f613d39d81e98d1438dbc182515b332a5ece Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:44:05 -0800 Subject: let users set location prefs from profile form --- actions/profilesettings.php | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 58bf838d7..7db86a6c8 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -133,11 +133,13 @@ class ProfilesettingsAction extends AccountSettingsAction ($this->arg('location')) ? $this->arg('location') : $profile->location, _('Where you are, like "City, State (or Region), Country"')); $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('sharelocation', _('Share my current location when posting notices'), - ($this->arg('sharelocation')) ? - $this->arg('sharelocation') : $user->shareLocation()); - $this->elementEnd('li'); + if (common_config('location', 'share') == 'user') { + $this->elementStart('li'); + $this->checkbox('sharelocation', _('Share my current location when posting notices'), + ($this->arg('sharelocation')) ? + $this->arg('sharelocation') : $user->shareLocation()); + $this->elementEnd('li'); + } Event::handle('EndProfileFormData', array($this)); $this->elementStart('li'); $this->input('tags', _('Tags'), @@ -323,6 +325,37 @@ class ProfilesettingsAction extends AccountSettingsAction $profile->profileurl = common_profile_url($nickname); + if (common_config('location', 'share') == 'user') { + + $exists = false; + + $prefs = User_location_prefs::staticGet('user_id', $user->id); + + if (empty($prefs)) { + $prefs = new User_location_prefs(); + + $prefs->user_id = $user->id; + $prefs->created = common_sql_now(); + } else { + $exists = true; + $orig = clone($prefs); + } + + $prefs->share_location = $this->boolean('sharelocation'); + + if ($exists) { + $result = $prefs->update($orig); + } else { + $result = $prefs->insert(); + } + + if ($result === false) { + common_log_db_error($prefs, ($exists) ? 'UPDATE' : 'INSERT', __FILE__); + $this->serverError(_('Couldn\'t save location prefs.')); + return; + } + } + common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__); common_debug('New profile: ' . common_log_objstring($profile), __FILE__); -- cgit v1.2.3-54-g00ecf From ca6669538a16f36f92df918d679671b95b1859ac Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 15:13:15 -0800 Subject: Move location-argument-handling code into a single function Moved the important parts of the location-argument-handling stuff to a single function. Handles defaults and overrides correctly, and easy to use. Changed Web and API channels to use it. --- actions/apistatusesupdate.php | 20 +++++++-------- actions/newnotice.php | 22 +++++----------- classes/Notice.php | 59 +++++++++++++++++++++++++++++++++---------- 3 files changed, 61 insertions(+), 40 deletions(-) diff --git a/actions/apistatusesupdate.php b/actions/apistatusesupdate.php index dabbea92f..f594bbf39 100644 --- a/actions/apistatusesupdate.php +++ b/actions/apistatusesupdate.php @@ -203,12 +203,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction } } - $location = null; - - if (!empty($this->lat) && !empty($this->lon)) { - $location = Location::fromLatLon($this->lat, $this->lon); - } - $upload = null; try { @@ -235,11 +229,15 @@ class ApiStatusesUpdateAction extends ApiAuthAction $options = array('reply_to' => $reply_to); - if (!empty($location)) { - $options['lat'] = $location->lat; - $options['lon'] = $location->lon; - $options['location_id'] = $location->location_id; - $options['location_ns'] = $location->location_ns; + if ($this->user->shareLocation()) { + + $locOptions = Notice::locationOptions($this->lat, + $this->lon, + null, + null, + $this->user->getProfile()); + + $options = array_merge($options, $locOptions); } $this->notice = diff --git a/actions/newnotice.php b/actions/newnotice.php index 8591522dc..2d9f0ff79 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -186,23 +186,13 @@ class NewnoticeAction extends Action if ($user->shareLocation()) { - $lat = $this->trimmed('lat'); - $lon = $this->trimmed('lon'); - $location_id = $this->trimmed('location_id'); - $location_ns = $this->trimmed('location_ns'); - - if (!empty($lat) && !empty($lon) && empty($location_id)) { - $location = Location::fromLatLon($lat, $lon); - if (!empty($location)) { - $location_id = $location->location_id; - $location_ns = $location->location_ns; - } - } + $locOptions = Notice::locationOptions($this->trimmed('lat'), + $this->trimmed('lon'), + $this->trimmed('location_id'), + $this->trimmed('location_ns'), + $user->getProfile()); - $options['lat'] = $lat; - $options['lon'] = $lon; - $options['location_id'] = $location_id; - $options['location_ns'] = $location_ns; + $options = array_merge($options, $locOptions); } $notice = Notice::saveNew($user->id, $content_shortened, 'web', $options); diff --git a/classes/Notice.php b/classes/Notice.php index 7651d8bd5..9f68c5255 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -289,21 +289,11 @@ class Notice extends Memcached_DataObject if (!empty($lat) && !empty($lon)) { $notice->lat = $lat; $notice->lon = $lon; + } + + if (!empty($location_ns) && !empty($location_id)) { $notice->location_id = $location_id; $notice->location_ns = $location_ns; - } else if (!empty($location_ns) && !empty($location_id)) { - $location = Location::fromId($location_id, $location_ns); - if (!empty($location)) { - $notice->lat = $location->lat; - $notice->lon = $location->lon; - $notice->location_id = $location_id; - $notice->location_ns = $location_ns; - } - } else { - $notice->lat = $profile->lat; - $notice->lon = $profile->lon; - $notice->location_id = $profile->location_id; - $notice->location_ns = $profile->location_ns; } if (Event::handle('StartNoticeSave', array(&$notice))) { @@ -1429,4 +1419,47 @@ class Notice extends Memcached_DataObject return $ids; } + + function locationOptions($lat, $lon, $location_id, $location_ns, $profile = null) + { + $options = array(); + + if (!empty($location_id) && !empty($location_ns)) { + + $options['location_id'] = $location_id; + $options['location_ns'] = $location_ns; + + $location = Location::fromId($location_id, $location_ns); + + if (!empty($location)) { + $options['lat'] = $location->lat; + $options['lon'] = $location->lon; + } + + } else if (!empty($lat) && !empty($lon)) { + + $options['lat'] = $lat; + $options['lon'] = $lon; + + $location = Location::fromLatLon($lat, $lon); + + if (!empty($location)) { + $options['location_id'] = $location->location_id; + $options['location_ns'] = $location->location_ns; + } + } else if (!empty($profile)) { + + if (isset($profile->lat) && isset($profile->lon)) { + $options['lat'] = $profile->lat; + $options['lon'] = $profile->lon; + } + + if (isset($profile->location_id) && isset($profile->location_ns)) { + $options['location_id'] = $profile->location_id; + $options['location_ns'] = $profile->location_ns; + } + } + + return $options; + } } -- cgit v1.2.3-54-g00ecf From a9d31da210fffe10bfa61a5f9f48a2cdb929425b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:53:28 -0800 Subject: add table user_location_prefs --- db/statusnet.sql | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/db/statusnet.sql b/db/statusnet.sql index 6b3c2ca06..94b03df63 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -587,3 +587,12 @@ create table login_token ( constraint primary key (user_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +create table user_location_prefs ( + user_id integer not null comment 'user who has the preference' references user (id), + share_location tinyint default 1 comment 'Whether to share location data', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (user_id) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + -- cgit v1.2.3-54-g00ecf From f9ad0f596b5dca5961dc4b47bca397371d026744 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:54:09 -0800 Subject: Add user_location_prefs to upgrade script --- db/08to09.sql | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/db/08to09.sql b/db/08to09.sql index 28ec3ec16..d9c25bc72 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -84,3 +84,13 @@ create table login_token ( constraint primary key (user_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + +create table user_location_prefs ( + user_id integer not null comment 'user who has the preference' references user (id), + share_location tinyint default 1 comment 'Whether to share location data', + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified', + + constraint primary key (user_id) +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + -- cgit v1.2.3-54-g00ecf From 51a33dc66da9ff3412f767cf8451f6aeaf7696ea Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:59:03 -0800 Subject: add user-location-prefs data objects --- classes/User_location_prefs.php | 48 +++++++++++++++++++++++++++++++++++++++++ classes/statusnet.ini | 12 +++++++++-- 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100755 classes/User_location_prefs.php diff --git a/classes/User_location_prefs.php b/classes/User_location_prefs.php new file mode 100755 index 000000000..52cb254ba --- /dev/null +++ b/classes/User_location_prefs.php @@ -0,0 +1,48 @@ +. + * + * @category Data + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; + +class User_location_prefs extends Memcached_DataObject +{ + ###START_AUTOCODE + /* the code below is auto generated do not remove the above tag */ + + public $__table = 'user_location_prefs'; // table name + public $user_id; // int(4) primary_key not_null + public $share_location; // tinyint(1) default_1 + public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 + public $modified; // timestamp not_null default_CURRENT_TIMESTAMP + + /* Static get */ + function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('User_location_prefs',$k,$v); } + + /* the code above is auto generated do not remove the tag below */ + ###END_AUTOCODE +} diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 2cc37dbfe..ac69403a4 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -1,4 +1,3 @@ - [avatar] profile_id = 129 original = 17 @@ -564,4 +563,13 @@ modified = 384 [user_openid__keys] trustroot = K -user_id = K \ No newline at end of file +user_id = K + +[user_location_prefs] +user_id = 129 +share_location = 17 +created = 142 +modified = 384 + +[user_location_prefs__keys] +user_id = K -- cgit v1.2.3-54-g00ecf From 33786b2c4e172f9aebf03013c88685f417028bc0 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 13:59:31 -0800 Subject: turn off exe bits --- classes/User_location_prefs.php | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 classes/User_location_prefs.php diff --git a/classes/User_location_prefs.php b/classes/User_location_prefs.php old mode 100755 new mode 100644 -- cgit v1.2.3-54-g00ecf From c1e3b2f032d2a63298d4cde46b8dc17637634750 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:21:07 -0800 Subject: remove namespace setting from location; it's unused --- actions/newnotice.php | 43 ++++++++++++++++++++++++------------------- actions/profilesettings.php | 5 +++++ classes/User.php | 16 ++++++++++++++++ lib/default.php | 2 +- 4 files changed, 46 insertions(+), 20 deletions(-) diff --git a/actions/newnotice.php b/actions/newnotice.php index c014f1781..8591522dc 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -164,19 +164,6 @@ class NewnoticeAction extends Action $replyto = 'false'; } - $lat = $this->trimmed('lat'); - $lon = $this->trimmed('lon'); - $location_id = $this->trimmed('location_id'); - $location_ns = $this->trimmed('location_ns'); - - if (!empty($lat) && !empty($lon) && empty($location_id)) { - $location = Location::fromLatLon($lat, $lon); - if (!empty($location)) { - $location_id = $location->location_id; - $location_ns = $location->location_ns; - } - } - $upload = null; $upload = MediaFile::fromUpload('attach'); @@ -195,12 +182,30 @@ class NewnoticeAction extends Action } } - $notice = Notice::saveNew($user->id, $content_shortened, 'web', - array('reply_to' => ($replyto == 'false') ? null : $replyto, - 'lat' => $lat, - 'lon' => $lon, - 'location_id' => $location_id, - 'location_ns' => $location_ns)); + $options = array('reply_to' => ($replyto == 'false') ? null : $replyto); + + if ($user->shareLocation()) { + + $lat = $this->trimmed('lat'); + $lon = $this->trimmed('lon'); + $location_id = $this->trimmed('location_id'); + $location_ns = $this->trimmed('location_ns'); + + if (!empty($lat) && !empty($lon) && empty($location_id)) { + $location = Location::fromLatLon($lat, $lon); + if (!empty($location)) { + $location_id = $location->location_id; + $location_ns = $location->location_ns; + } + } + + $options['lat'] = $lat; + $options['lon'] = $lon; + $options['location_id'] = $location_id; + $options['location_ns'] = $location_ns; + } + + $notice = Notice::saveNew($user->id, $content_shortened, 'web', $options); if (isset($upload)) { $upload->attachToNotice($notice); diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 359664096..58bf838d7 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -133,6 +133,11 @@ class ProfilesettingsAction extends AccountSettingsAction ($this->arg('location')) ? $this->arg('location') : $profile->location, _('Where you are, like "City, State (or Region), Country"')); $this->elementEnd('li'); + $this->elementStart('li'); + $this->checkbox('sharelocation', _('Share my current location when posting notices'), + ($this->arg('sharelocation')) ? + $this->arg('sharelocation') : $user->shareLocation()); + $this->elementEnd('li'); Event::handle('EndProfileFormData', array($this)); $this->elementStart('li'); $this->input('tags', _('Tags'), diff --git a/classes/User.php b/classes/User.php index 6708d95b6..2bcb7c2a0 100644 --- a/classes/User.php +++ b/classes/User.php @@ -996,4 +996,20 @@ class User extends Memcached_DataObject return $ids; } + + function shareLocation() + { + $share = true; + + $prefs = User_location_prefs::staticGet('user_id', $this->id); + + if (empty($prefs)) { + $share = common_config('location', 'share'); + } else { + $share = $prefs->share_location; + $prefs->free(); + } + + return $share; + } } diff --git a/lib/default.php b/lib/default.php index 42d4623b1..b5eda7b2c 100644 --- a/lib/default.php +++ b/lib/default.php @@ -226,7 +226,7 @@ $default = 'message' => array('contentlimit' => null), 'location' => - array('namespace' => 1), // 1 = geonames, 2 = Yahoo Where on Earth + array(), 'omb' => array('timeout' => 5), // HTTP request timeout in seconds when contacting remote hosts for OMB updates 'logincommand' => -- cgit v1.2.3-54-g00ecf From 6a6d88f0f4641f294a5c513c6aacba604e37222f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:43:14 -0800 Subject: user_id is primary key for user_location_prefs --- classes/statusnet.ini | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/classes/statusnet.ini b/classes/statusnet.ini index ac69403a4..35a000aac 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -572,4 +572,5 @@ created = 142 modified = 384 [user_location_prefs__keys] -user_id = K +user_id = N + -- cgit v1.2.3-54-g00ecf From 97f611107a9620f0e01e6c00c91cd1edea66d981 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:43:34 -0800 Subject: More configuration options for location sharing --- classes/User.php | 26 +++++++++++++++++--------- lib/default.php | 3 ++- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/classes/User.php b/classes/User.php index 2bcb7c2a0..34151778c 100644 --- a/classes/User.php +++ b/classes/User.php @@ -999,17 +999,25 @@ class User extends Memcached_DataObject function shareLocation() { - $share = true; + $cfg = common_config('location', 'share'); - $prefs = User_location_prefs::staticGet('user_id', $this->id); + if ($cfg == 'always') { + return true; + } else if ($cfg == 'never') { + return false; + } else { // user + $share = true; - if (empty($prefs)) { - $share = common_config('location', 'share'); - } else { - $share = $prefs->share_location; - $prefs->free(); - } + $prefs = User_location_prefs::staticGet('user_id', $this->id); - return $share; + if (empty($prefs)) { + $share = common_config('location', 'sharedefault'); + } else { + $share = $prefs->share_location; + $prefs->free(); + } + + return $share; + } } } diff --git a/lib/default.php b/lib/default.php index b5eda7b2c..8a70ed3fa 100644 --- a/lib/default.php +++ b/lib/default.php @@ -226,7 +226,8 @@ $default = 'message' => array('contentlimit' => null), 'location' => - array(), + array('share' => 'user', // whether to share location; 'always', 'user', 'never' + 'sharedefault' => true), 'omb' => array('timeout' => 5), // HTTP request timeout in seconds when contacting remote hosts for OMB updates 'logincommand' => -- cgit v1.2.3-54-g00ecf From d96d1775d5e8613443d2e07d253b3269832c36c5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 14:44:05 -0800 Subject: let users set location prefs from profile form --- actions/profilesettings.php | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/actions/profilesettings.php b/actions/profilesettings.php index 58bf838d7..7db86a6c8 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -133,11 +133,13 @@ class ProfilesettingsAction extends AccountSettingsAction ($this->arg('location')) ? $this->arg('location') : $profile->location, _('Where you are, like "City, State (or Region), Country"')); $this->elementEnd('li'); - $this->elementStart('li'); - $this->checkbox('sharelocation', _('Share my current location when posting notices'), - ($this->arg('sharelocation')) ? - $this->arg('sharelocation') : $user->shareLocation()); - $this->elementEnd('li'); + if (common_config('location', 'share') == 'user') { + $this->elementStart('li'); + $this->checkbox('sharelocation', _('Share my current location when posting notices'), + ($this->arg('sharelocation')) ? + $this->arg('sharelocation') : $user->shareLocation()); + $this->elementEnd('li'); + } Event::handle('EndProfileFormData', array($this)); $this->elementStart('li'); $this->input('tags', _('Tags'), @@ -323,6 +325,37 @@ class ProfilesettingsAction extends AccountSettingsAction $profile->profileurl = common_profile_url($nickname); + if (common_config('location', 'share') == 'user') { + + $exists = false; + + $prefs = User_location_prefs::staticGet('user_id', $user->id); + + if (empty($prefs)) { + $prefs = new User_location_prefs(); + + $prefs->user_id = $user->id; + $prefs->created = common_sql_now(); + } else { + $exists = true; + $orig = clone($prefs); + } + + $prefs->share_location = $this->boolean('sharelocation'); + + if ($exists) { + $result = $prefs->update($orig); + } else { + $result = $prefs->insert(); + } + + if ($result === false) { + common_log_db_error($prefs, ($exists) ? 'UPDATE' : 'INSERT', __FILE__); + $this->serverError(_('Couldn\'t save location prefs.')); + return; + } + } + common_debug('Old profile: ' . common_log_objstring($orig_profile), __FILE__); common_debug('New profile: ' . common_log_objstring($profile), __FILE__); -- cgit v1.2.3-54-g00ecf From e3789be03f9e2d20aa74da1a10c4090b260d3359 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 15:13:15 -0800 Subject: Move location-argument-handling code into a single function Moved the important parts of the location-argument-handling stuff to a single function. Handles defaults and overrides correctly, and easy to use. Changed Web and API channels to use it. --- actions/apistatusesupdate.php | 20 +++++++-------- actions/newnotice.php | 22 +++++----------- classes/Notice.php | 59 +++++++++++++++++++++++++++++++++---------- 3 files changed, 61 insertions(+), 40 deletions(-) diff --git a/actions/apistatusesupdate.php b/actions/apistatusesupdate.php index dabbea92f..f594bbf39 100644 --- a/actions/apistatusesupdate.php +++ b/actions/apistatusesupdate.php @@ -203,12 +203,6 @@ class ApiStatusesUpdateAction extends ApiAuthAction } } - $location = null; - - if (!empty($this->lat) && !empty($this->lon)) { - $location = Location::fromLatLon($this->lat, $this->lon); - } - $upload = null; try { @@ -235,11 +229,15 @@ class ApiStatusesUpdateAction extends ApiAuthAction $options = array('reply_to' => $reply_to); - if (!empty($location)) { - $options['lat'] = $location->lat; - $options['lon'] = $location->lon; - $options['location_id'] = $location->location_id; - $options['location_ns'] = $location->location_ns; + if ($this->user->shareLocation()) { + + $locOptions = Notice::locationOptions($this->lat, + $this->lon, + null, + null, + $this->user->getProfile()); + + $options = array_merge($options, $locOptions); } $this->notice = diff --git a/actions/newnotice.php b/actions/newnotice.php index 8591522dc..2d9f0ff79 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -186,23 +186,13 @@ class NewnoticeAction extends Action if ($user->shareLocation()) { - $lat = $this->trimmed('lat'); - $lon = $this->trimmed('lon'); - $location_id = $this->trimmed('location_id'); - $location_ns = $this->trimmed('location_ns'); - - if (!empty($lat) && !empty($lon) && empty($location_id)) { - $location = Location::fromLatLon($lat, $lon); - if (!empty($location)) { - $location_id = $location->location_id; - $location_ns = $location->location_ns; - } - } + $locOptions = Notice::locationOptions($this->trimmed('lat'), + $this->trimmed('lon'), + $this->trimmed('location_id'), + $this->trimmed('location_ns'), + $user->getProfile()); - $options['lat'] = $lat; - $options['lon'] = $lon; - $options['location_id'] = $location_id; - $options['location_ns'] = $location_ns; + $options = array_merge($options, $locOptions); } $notice = Notice::saveNew($user->id, $content_shortened, 'web', $options); diff --git a/classes/Notice.php b/classes/Notice.php index 7651d8bd5..9f68c5255 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -289,21 +289,11 @@ class Notice extends Memcached_DataObject if (!empty($lat) && !empty($lon)) { $notice->lat = $lat; $notice->lon = $lon; + } + + if (!empty($location_ns) && !empty($location_id)) { $notice->location_id = $location_id; $notice->location_ns = $location_ns; - } else if (!empty($location_ns) && !empty($location_id)) { - $location = Location::fromId($location_id, $location_ns); - if (!empty($location)) { - $notice->lat = $location->lat; - $notice->lon = $location->lon; - $notice->location_id = $location_id; - $notice->location_ns = $location_ns; - } - } else { - $notice->lat = $profile->lat; - $notice->lon = $profile->lon; - $notice->location_id = $profile->location_id; - $notice->location_ns = $profile->location_ns; } if (Event::handle('StartNoticeSave', array(&$notice))) { @@ -1429,4 +1419,47 @@ class Notice extends Memcached_DataObject return $ids; } + + function locationOptions($lat, $lon, $location_id, $location_ns, $profile = null) + { + $options = array(); + + if (!empty($location_id) && !empty($location_ns)) { + + $options['location_id'] = $location_id; + $options['location_ns'] = $location_ns; + + $location = Location::fromId($location_id, $location_ns); + + if (!empty($location)) { + $options['lat'] = $location->lat; + $options['lon'] = $location->lon; + } + + } else if (!empty($lat) && !empty($lon)) { + + $options['lat'] = $lat; + $options['lon'] = $lon; + + $location = Location::fromLatLon($lat, $lon); + + if (!empty($location)) { + $options['location_id'] = $location->location_id; + $options['location_ns'] = $location->location_ns; + } + } else if (!empty($profile)) { + + if (isset($profile->lat) && isset($profile->lon)) { + $options['lat'] = $profile->lat; + $options['lon'] = $profile->lon; + } + + if (isset($profile->location_id) && isset($profile->location_ns)) { + $options['location_id'] = $profile->location_id; + $options['location_ns'] = $profile->location_ns; + } + } + + return $options; + } } -- cgit v1.2.3-54-g00ecf From 1e3fea17afb5d8291e87f1fc57022af4e2633611 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 16:35:29 -0800 Subject: don't add flag if it's already there at block time --- plugins/UserFlag/UserFlagPlugin.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index 0fca5f9cf..602a5bfa8 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -251,7 +251,9 @@ class UserFlagPlugin extends Plugin function onEndBlockProfile($user, $profile) { - if ($this->flagOnBlock) { + if ($this->flagOnBlock && !User_flag_profile::exists($profile->id, + $user->id)) { + User_flag_profile::create($user->id, $profile->id); } return true; -- cgit v1.2.3-54-g00ecf From 45c4078ca9de2f8f107e3c4a7cb759ac9cb2664a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 28 Dec 2009 17:51:04 -0800 Subject: notices are immutable, use created date for updated --- classes/Notice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Notice.php b/classes/Notice.php index 7651d8bd5..0bb3b861c 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1139,7 +1139,7 @@ class Notice extends Memcached_DataObject $xs->element('id', null, $this->uri); $xs->element('published', null, common_date_w3dtf($this->created)); - $xs->element('updated', null, common_date_w3dtf($this->modified)); + $xs->element('updated', null, common_date_w3dtf($this->created)); if ($this->reply_to) { $reply_notice = Notice::staticGet('id', $this->reply_to); -- cgit v1.2.3-54-g00ecf From e152bec2822a4ec773d02dd05f080a049ff3d524 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 29 Dec 2009 11:46:10 -0800 Subject: Fix for saving user location preferences -- user_id field was marked as an auto-increment and wasn't getting saved with new inserts. --- classes/statusnet.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 35a000aac..4077746c4 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -572,5 +572,5 @@ created = 142 modified = 384 [user_location_prefs__keys] -user_id = N +user_id = U -- cgit v1.2.3-54-g00ecf From 360fdb219dde7cb46b919aa18826df8ce5f4fdc6 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 29 Dec 2009 12:25:41 -0800 Subject: don't show notices with deleted profiles --- lib/noticelist.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/noticelist.php b/lib/noticelist.php index 4c11ceed6..5eb2633ac 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -191,6 +191,14 @@ class NoticeListItem extends Widget function show() { + if (empty($this->notice)) { + common_log(LOG_WARNING, "Trying to show missing notice; skipping."); + return; + } else if (empty($this->profile)) { + common_log(LOG_WARNING, "Trying to show missing profile (" . $this->notice->profile_id . "); skipping."); + return; + } + $this->showStart(); if (Event::handle('StartShowNoticeItem', array($this))) { $this->showNotice(); -- cgit v1.2.3-54-g00ecf From 0fb114c34f1ad13683234762002dc9e98e16cc10 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 29 Dec 2009 11:46:10 -0800 Subject: Fix for saving user location preferences -- user_id field was marked as an auto-increment and wasn't getting saved with new inserts. --- classes/statusnet.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 35a000aac..4077746c4 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -572,5 +572,5 @@ created = 142 modified = 384 [user_location_prefs__keys] -user_id = N +user_id = U -- cgit v1.2.3-54-g00ecf From 98ce7daf5650ebd7e6f6bbaca6e57069ffccae55 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 29 Dec 2009 16:17:17 -0500 Subject: Implement user interface for user to preview what location they are sharing with a notice --- actions/geocode.php | 93 +++++++++++++++++++++++++++++++++++++++++++++++++ actions/newnotice.php | 2 +- js/jquery.cookie.js | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ js/util.js | 46 +++++++++++++++++++++--- lib/action.php | 1 + lib/noticeform.php | 6 ++++ lib/router.php | 3 +- 7 files changed, 240 insertions(+), 7 deletions(-) create mode 100644 actions/geocode.php create mode 100644 js/jquery.cookie.js diff --git a/actions/geocode.php b/actions/geocode.php new file mode 100644 index 000000000..7fd696baf --- /dev/null +++ b/actions/geocode.php @@ -0,0 +1,93 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2008, 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Geocode action class + * + * @category Action + * @package StatusNet + * @author Craig Andrews + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ +class GeocodeAction extends Action +{ + function prepare($args) + { + parent::prepare($args); + $token = $this->trimmed('token'); + if (!$token || $token != common_session_token()) { + $this->clientError(_('There was a problem with your session token. '. + 'Try again, please.')); + } + $this->lat = $this->trimmed('lat'); + $this->lon = $this->trimmed('lon'); + $this->location = Location::fromLatLon($this->lat, $this->lon); + return true; + } + + /** + * Class handler + * + * @param array $args query arguments + * + * @return nothing + * + **/ + function handle($args) + { + header('Content-Type: application/json; charset=utf-8'); + $location_object = array(); + $location_object['lat']=$this->lat; + $location_object['lon']=$this->lon; + if($this->location) { + $location_object['location_id']=$this->location->location_id; + $location_object['location_ns']=$this->location->location_ns; + $location_object['name']=$this->location->getName(); + $location_object['url']=$this->location->getUrl(); + } + print(json_encode($location_object)); + } + + /** + * Is this action read-only? + * + * @return boolean true + */ + + function isReadOnly($args) + { + return true; + } +} +?> diff --git a/actions/newnotice.php b/actions/newnotice.php index 2d9f0ff79..8d89e9da0 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -184,7 +184,7 @@ class NewnoticeAction extends Action $options = array('reply_to' => ($replyto == 'false') ? null : $replyto); - if ($user->shareLocation()) { + if ($user->shareLocation() && $this->arg('notice_data-location_enabled')) { $locOptions = Notice::locationOptions($this->trimmed('lat'), $this->trimmed('lon'), diff --git a/js/jquery.cookie.js b/js/jquery.cookie.js new file mode 100644 index 000000000..6df1faca2 --- /dev/null +++ b/js/jquery.cookie.js @@ -0,0 +1,96 @@ +/** + * Cookie plugin + * + * Copyright (c) 2006 Klaus Hartl (stilbuero.de) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + */ + +/** + * Create a cookie with the given name and value and other optional parameters. + * + * @example $.cookie('the_cookie', 'the_value'); + * @desc Set the value of a cookie. + * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); + * @desc Create a cookie with all available options. + * @example $.cookie('the_cookie', 'the_value'); + * @desc Create a session cookie. + * @example $.cookie('the_cookie', null); + * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain + * used when the cookie was set. + * + * @param String name The name of the cookie. + * @param String value The value of the cookie. + * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. + * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. + * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. + * If set to null or omitted, the cookie will be a session cookie and will not be retained + * when the the browser exits. + * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). + * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). + * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will + * require a secure protocol (like HTTPS). + * @type undefined + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ + +/** + * Get the value of a cookie with the given name. + * + * @example $.cookie('the_cookie'); + * @desc Get the value of a cookie. + * + * @param String name The name of the cookie. + * @return The value of the cookie. + * @type String + * + * @name $.cookie + * @cat Plugins/Cookie + * @author Klaus Hartl/klaus.hartl@stilbuero.de + */ +jQuery.cookie = function(name, value, options) { + if (typeof value != 'undefined') { // name and value given, set cookie + options = options || {}; + if (value === null) { + value = ''; + options.expires = -1; + } + var expires = ''; + if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { + var date; + if (typeof options.expires == 'number') { + date = new Date(); + date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); + } else { + date = options.expires; + } + expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE + } + // CAUTION: Needed to parenthesize options.path and options.domain + // in the following expressions, otherwise they evaluate to undefined + // in the packed version for some reason... + var path = options.path ? '; path=' + (options.path) : ''; + var domain = options.domain ? '; domain=' + (options.domain) : ''; + var secure = options.secure ? '; secure' : ''; + document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); + } else { // only name given, get cookie + var cookieValue = null; + if (document.cookie && document.cookie != '') { + var cookies = document.cookie.split(';'); + for (var i = 0; i < cookies.length; i++) { + var cookie = jQuery.trim(cookies[i]); + // Does this cookie string begin with the name we want? + if (cookie.substring(0, name.length + 1) == (name + '=')) { + cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); + break; + } + } + } + return cookieValue; + } +}; \ No newline at end of file diff --git a/js/util.js b/js/util.js index 0987c6cc0..f52c70ba4 100644 --- a/js/util.js +++ b/js/util.js @@ -50,7 +50,9 @@ var SN = { // StatusNet NoticeLat: 'notice_data-lat', NoticeLon: 'notice_data-lon', NoticeLocationId: 'notice_data-location_id', - NoticeLocationNs: 'notice_data-location_ns' + NoticeLocationNs: 'notice_data-location_ns', + NoticeLocationName: 'notice_data-location_name', + NoticeLocationCookieName: 'location_enabled' } }, @@ -436,10 +438,44 @@ var SN = { // StatusNet }, NoticeLocationAttach: function() { - if(navigator.geolocation) navigator.geolocation.watchPosition(function(position) { - $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); - $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); - }); + if($('#notice_data-location_enabled').size()) { + if(navigator.geolocation) { + $('#notice_data-location_enabled').change(function() { + $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); + if($('#notice_data-location_enabled').attr('checked')) { + $('#'+SN.C.S.NoticeLocationName).show(); + $('#'+SN.C.S.NoticeLocationName).addClass('processing'); + navigator.geolocation.getCurrentPosition(function(position) { + $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); + $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); + var data = {'lat': position.coords.latitude,'lon': position.coords.longitude, 'token': $('#token').val()}; + $.getJSON($('#notice_data-location_enabled_container').attr('data-geocode-url'), data,function(location) { + $('#'+SN.C.S.NoticeLocationName).removeClass('processing'); + if(typeof(location.location_ns)!="undefined") $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); + if(typeof(location.location_id)!="undefined") $('#'+SN.C.S.NoticeLocationId).val(location.location_id); + if(typeof(location.name)=="undefined") { + $('#'+SN.C.S.NoticeLocationName).text(position.coords.latitude + ' ' + position.coords.longitude); + } else { + $('#'+SN.C.S.NoticeLocationName).text(location.name); + $('#'+SN.C.S.NoticeLocationName).attr('href',location.url); + } + }); + }); + } else { + $('#'+SN.C.S.NoticeLocationName).hide(); + $('#'+SN.C.S.NoticeLat).val(""); + $('#'+SN.C.S.NoticeLon).val(""); + $('#'+SN.C.S.NoticeLocationNs).val(""); + $('#'+SN.C.S.NoticeLocationId).val(""); + } + }); + var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); + $('#notice_data-location_enabled').attr('checked',(cookieVal == null || cookieVal == 'true')); + $('#notice_data-location_enabled').change(); + } else { + $('#notice_data-location_enabled_container').remove(); + } + } }, NewDirectMessage: function() { diff --git a/lib/action.php b/lib/action.php index dac0e2583..35df03566 100644 --- a/lib/action.php +++ b/lib/action.php @@ -252,6 +252,7 @@ class Action extends HTMLOutputter // lawsuit if (Event::handle('StartShowJQueryScripts', array($this))) { $this->script('js/jquery.min.js'); $this->script('js/jquery.form.js'); + $this->script('js/jquery.cookie.js'); $this->script('js/jquery.joverlay.min.js'); Event::handle('EndShowJQueryScripts', array($this)); } diff --git a/lib/noticeform.php b/lib/noticeform.php index 593a1e932..d85de9c22 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -220,5 +220,11 @@ class NoticeForm extends Form 'name' => 'status_submit', 'type' => 'submit', 'value' => _('Send'))); + if($this->user->shareLocation()) { + $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); + $this->out->checkbox('notice_data-location_enabled',_('Share your location ')); + $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); + $this->out->elementEnd('div'); + } } } diff --git a/lib/router.php b/lib/router.php index 474e05996..7ec962460 100644 --- a/lib/router.php +++ b/lib/router.php @@ -100,7 +100,8 @@ class Router 'sandbox', 'unsandbox', 'silence', 'unsilence', 'repeat', - 'deleteuser'); + 'deleteuser', + 'geocode'); foreach ($main as $a) { $m->connect('main/'.$a, array('action' => $a)); -- cgit v1.2.3-54-g00ecf From 552de999bfe660cbf88eb9b1ce19e55b2f6b3d92 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 29 Dec 2009 16:19:33 -0500 Subject: Revert "Drop the Google Client API-based AJAX geolocation lookup shim -- it fails to ask for user permission, causing us quite a bit of difficulty." This reverts commit 749b8b5b8ca4d1c39d350879aadddbdb9d8b71d5. --- js/geometa.js | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 118 insertions(+), 5 deletions(-) diff --git a/js/geometa.js b/js/geometa.js index 87e3c99a1..21deb1885 100644 --- a/js/geometa.js +++ b/js/geometa.js @@ -1,4 +1,4 @@ -// A shim to implement the W3C Geolocation API Specification using Gears +// A shim to implement the W3C Geolocation API Specification using Gears or the Ajax API if (typeof navigator.geolocation == "undefined" || navigator.geolocation.shim ) (function(){ // -- BEGIN GEARS_INIT @@ -96,9 +96,122 @@ var GearsGeoLocation = (function() { }; }); -// If you have Gears installed use that -if (window.google && google.gears) { - navigator.geolocation = GearsGeoLocation(); -} +var AjaxGeoLocation = (function() { + // -- PRIVATE + var loading = false; + var loadGoogleLoader = function() { + if (!hasGoogleLoader() && !loading) { + loading = true; + var s = document.createElement('script'); + s.src = (document.location.protocol == "https:"?"https://":"http://") + 'www.google.com/jsapi?callback=_google_loader_apiLoaded'; + s.type = "text/javascript"; + document.getElementsByTagName('body')[0].appendChild(s); + } + }; + + var queue = []; + var addLocationQueue = function(callback) { + queue.push(callback); + } + + var runLocationQueue = function() { + if (hasGoogleLoader()) { + while (queue.length > 0) { + var call = queue.pop(); + call(); + } + } + } + + window['_google_loader_apiLoaded'] = function() { + runLocationQueue(); + } + + var hasGoogleLoader = function() { + return (window['google'] && google['loader']); + } + + var checkGoogleLoader = function(callback) { + if (hasGoogleLoader()) return true; + + addLocationQueue(callback); + + loadGoogleLoader(); + + return false; + }; + + loadGoogleLoader(); // start to load as soon as possible just in case + + // -- PUBLIC + return { + shim: true, + + type: "ClientLocation", + + lastPosition: null, + + getCurrentPosition: function(successCallback, errorCallback, options) { + var self = this; + if (!checkGoogleLoader(function() { + self.getCurrentPosition(successCallback, errorCallback, options); + })) return; + + if (google.loader.ClientLocation) { + var cl = google.loader.ClientLocation; + + var position = { + coords: { + latitude: cl.latitude, + longitude: cl.longitude, + altitude: null, + accuracy: 43000, // same as Gears accuracy over wifi? + altitudeAccuracy: null, + heading: null, + speed: null, + }, + // extra info that is outside of the bounds of the core API + address: { + city: cl.address.city, + country: cl.address.country, + country_code: cl.address.country_code, + region: cl.address.region + }, + timestamp: new Date() + }; + + successCallback(position); + + this.lastPosition = position; + } else if (errorCallback === "function") { + errorCallback({ code: 3, message: "Using the Google ClientLocation API and it is not able to calculate a location."}); + } + }, + + watchPosition: function(successCallback, errorCallback, options) { + this.getCurrentPosition(successCallback, errorCallback, options); + + var self = this; + var watchId = setInterval(function() { + self.getCurrentPosition(successCallback, errorCallback, options); + }, 10000); + + return watchId; + }, + + clearWatch: function(watchId) { + clearInterval(watchId); + }, + + getPermission: function(siteName, imageUrl, extraMessage) { + // for now just say yes :) + return true; + } + + }; +}); + +// If you have Gears installed use that, else use Ajax ClientLocation +navigator.geolocation = (window.google && google.gears) ? GearsGeoLocation() : AjaxGeoLocation(); })(); -- cgit v1.2.3-54-g00ecf From 2cfa90c75203d95c859e8da2c4d9dbd6afe43500 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 29 Dec 2009 17:12:52 -0500 Subject: Revert "Revert "Drop the Google Client API-based AJAX geolocation lookup shim -- it fails to ask for user permission, causing us quite a bit of difficulty."" This reverts commit 552de999bfe660cbf88eb9b1ce19e55b2f6b3d92. Playing a bit of back-and-forth with this one :-) --- js/geometa.js | 123 +++------------------------------------------------------- 1 file changed, 5 insertions(+), 118 deletions(-) diff --git a/js/geometa.js b/js/geometa.js index 21deb1885..87e3c99a1 100644 --- a/js/geometa.js +++ b/js/geometa.js @@ -1,4 +1,4 @@ -// A shim to implement the W3C Geolocation API Specification using Gears or the Ajax API +// A shim to implement the W3C Geolocation API Specification using Gears if (typeof navigator.geolocation == "undefined" || navigator.geolocation.shim ) (function(){ // -- BEGIN GEARS_INIT @@ -96,122 +96,9 @@ var GearsGeoLocation = (function() { }; }); -var AjaxGeoLocation = (function() { - // -- PRIVATE - var loading = false; - var loadGoogleLoader = function() { - if (!hasGoogleLoader() && !loading) { - loading = true; - var s = document.createElement('script'); - s.src = (document.location.protocol == "https:"?"https://":"http://") + 'www.google.com/jsapi?callback=_google_loader_apiLoaded'; - s.type = "text/javascript"; - document.getElementsByTagName('body')[0].appendChild(s); - } - }; - - var queue = []; - var addLocationQueue = function(callback) { - queue.push(callback); - } - - var runLocationQueue = function() { - if (hasGoogleLoader()) { - while (queue.length > 0) { - var call = queue.pop(); - call(); - } - } - } - - window['_google_loader_apiLoaded'] = function() { - runLocationQueue(); - } - - var hasGoogleLoader = function() { - return (window['google'] && google['loader']); - } - - var checkGoogleLoader = function(callback) { - if (hasGoogleLoader()) return true; - - addLocationQueue(callback); - - loadGoogleLoader(); - - return false; - }; - - loadGoogleLoader(); // start to load as soon as possible just in case - - // -- PUBLIC - return { - shim: true, - - type: "ClientLocation", - - lastPosition: null, - - getCurrentPosition: function(successCallback, errorCallback, options) { - var self = this; - if (!checkGoogleLoader(function() { - self.getCurrentPosition(successCallback, errorCallback, options); - })) return; - - if (google.loader.ClientLocation) { - var cl = google.loader.ClientLocation; - - var position = { - coords: { - latitude: cl.latitude, - longitude: cl.longitude, - altitude: null, - accuracy: 43000, // same as Gears accuracy over wifi? - altitudeAccuracy: null, - heading: null, - speed: null, - }, - // extra info that is outside of the bounds of the core API - address: { - city: cl.address.city, - country: cl.address.country, - country_code: cl.address.country_code, - region: cl.address.region - }, - timestamp: new Date() - }; - - successCallback(position); - - this.lastPosition = position; - } else if (errorCallback === "function") { - errorCallback({ code: 3, message: "Using the Google ClientLocation API and it is not able to calculate a location."}); - } - }, - - watchPosition: function(successCallback, errorCallback, options) { - this.getCurrentPosition(successCallback, errorCallback, options); - - var self = this; - var watchId = setInterval(function() { - self.getCurrentPosition(successCallback, errorCallback, options); - }, 10000); - - return watchId; - }, - - clearWatch: function(watchId) { - clearInterval(watchId); - }, - - getPermission: function(siteName, imageUrl, extraMessage) { - // for now just say yes :) - return true; - } - - }; -}); - -// If you have Gears installed use that, else use Ajax ClientLocation -navigator.geolocation = (window.google && google.gears) ? GearsGeoLocation() : AjaxGeoLocation(); +// If you have Gears installed use that +if (window.google && google.gears) { + navigator.geolocation = GearsGeoLocation(); +} })(); -- cgit v1.2.3-54-g00ecf From e3850e5273904a222580ff8daa3e778518721161 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 29 Dec 2009 14:05:43 -0800 Subject: Add progress output and optional --sleep-time parameter to triminboxes.php --- classes/Notice_inbox.php | 9 +++++++++ scripts/triminboxes.php | 24 ++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/classes/Notice_inbox.php b/classes/Notice_inbox.php index b39006542..d3ddad656 100644 --- a/classes/Notice_inbox.php +++ b/classes/Notice_inbox.php @@ -106,6 +106,13 @@ class Notice_inbox extends Memcached_DataObject return Memcached_DataObject::pkeyGet('Notice_inbox', $kv); } + /** + * Trim inbox for a given user to latest NOTICE_INBOX_LIMIT items + * (up to NOTICE_INBOX_GC_MAX will be deleted). + * + * @param int $user_id + * @return int count of notices dropped from the inbox, if any + */ static function gc($user_id) { $entry = new Notice_inbox(); @@ -133,6 +140,8 @@ class Notice_inbox extends Memcached_DataObject $notices = array(); } } + + return $total; } static function deleteMatching($user_id, $notices) diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php index da09817e5..ea4751305 100644 --- a/scripts/triminboxes.php +++ b/scripts/triminboxes.php @@ -21,19 +21,21 @@ define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); $shortoptions = 'u::'; -$longoptions = array('start-user-id::'); +$longoptions = array('start-user-id=', 'sleep-time='); $helptext = << --start-user-id= User ID to start after. Default is all. + --sleep-time= Amount of time to wait (in seconds) between trims. Default is zero. END_OF_TRIM_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; $id = null; +$sleep_time = 0; if (have_option('u')) { $id = get_option_value('u'); @@ -43,6 +45,12 @@ if (have_option('u')) { $id = null; } +if (have_option('--sleep-time')) { + $sleep_time = intval(get_option_value('--sleep-time')); +} + +$quiet = have_option('q') || have_option('--quiet'); + $user = new User(); if (!empty($id)) { @@ -52,5 +60,17 @@ if (!empty($id)) { $cnt = $user->find(); while ($user->fetch()) { - Notice_inbox::gc($user->id); + if (!$quiet) { + print "Trimming inbox for user $user->id"; + } + $count = Notice_inbox::gc($user->id); + if ($count) { + if (!$quiet) { + print ": $count trimmed..."; + } + sleep($sleep_time); + } + if (!$quiet) { + print "\n"; + } } -- cgit v1.2.3-54-g00ecf From 45c9d3d729a9c811282bdb9caa70450218200e8b Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 29 Dec 2009 14:05:43 -0800 Subject: Add progress output and optional --sleep-time parameter to triminboxes.php --- classes/Notice_inbox.php | 9 +++++++++ scripts/triminboxes.php | 24 ++++++++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/classes/Notice_inbox.php b/classes/Notice_inbox.php index b39006542..d3ddad656 100644 --- a/classes/Notice_inbox.php +++ b/classes/Notice_inbox.php @@ -106,6 +106,13 @@ class Notice_inbox extends Memcached_DataObject return Memcached_DataObject::pkeyGet('Notice_inbox', $kv); } + /** + * Trim inbox for a given user to latest NOTICE_INBOX_LIMIT items + * (up to NOTICE_INBOX_GC_MAX will be deleted). + * + * @param int $user_id + * @return int count of notices dropped from the inbox, if any + */ static function gc($user_id) { $entry = new Notice_inbox(); @@ -133,6 +140,8 @@ class Notice_inbox extends Memcached_DataObject $notices = array(); } } + + return $total; } static function deleteMatching($user_id, $notices) diff --git a/scripts/triminboxes.php b/scripts/triminboxes.php index da09817e5..ea4751305 100644 --- a/scripts/triminboxes.php +++ b/scripts/triminboxes.php @@ -21,19 +21,21 @@ define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); $shortoptions = 'u::'; -$longoptions = array('start-user-id::'); +$longoptions = array('start-user-id=', 'sleep-time='); $helptext = << --start-user-id= User ID to start after. Default is all. + --sleep-time= Amount of time to wait (in seconds) between trims. Default is zero. END_OF_TRIM_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; $id = null; +$sleep_time = 0; if (have_option('u')) { $id = get_option_value('u'); @@ -43,6 +45,12 @@ if (have_option('u')) { $id = null; } +if (have_option('--sleep-time')) { + $sleep_time = intval(get_option_value('--sleep-time')); +} + +$quiet = have_option('q') || have_option('--quiet'); + $user = new User(); if (!empty($id)) { @@ -52,5 +60,17 @@ if (!empty($id)) { $cnt = $user->find(); while ($user->fetch()) { - Notice_inbox::gc($user->id); + if (!$quiet) { + print "Trimming inbox for user $user->id"; + } + $count = Notice_inbox::gc($user->id); + if ($count) { + if (!$quiet) { + print ": $count trimmed..."; + } + sleep($sleep_time); + } + if (!$quiet) { + print "\n"; + } } -- cgit v1.2.3-54-g00ecf From 96ce2262f8083756ea846d8b2c59fcc87f94b54c Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 29 Dec 2009 14:30:15 -0800 Subject: If we got an identified location at ajax check time, renormalize lat/lon and naming. This'll match other displays of the names more consistently (Opera Plaza, San Francisco, CA, US instead of Opera Plaza, US) --- actions/geocode.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/actions/geocode.php b/actions/geocode.php index 7fd696baf..9671d2c27 100644 --- a/actions/geocode.php +++ b/actions/geocode.php @@ -52,7 +52,12 @@ class GeocodeAction extends Action } $this->lat = $this->trimmed('lat'); $this->lon = $this->trimmed('lon'); - $this->location = Location::fromLatLon($this->lat, $this->lon); + $location = Location::fromLatLon($this->lat, $this->lon); + if ($location) { + $this->location = Location::fromId($location->location_id, $location->location_ns); + $this->lat = $this->location->lat; + $this->lon = $this->location->lon; + } return true; } -- cgit v1.2.3-54-g00ecf From 544e884d30618224c317931c031175c0f6319849 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 30 Dec 2009 08:56:43 -1000 Subject: Add magic formula to keep DB_DataObject from treating location prefs pkey as autoincrement --- classes/User_location_prefs.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/classes/User_location_prefs.php b/classes/User_location_prefs.php index 52cb254ba..bd6029f97 100644 --- a/classes/User_location_prefs.php +++ b/classes/User_location_prefs.php @@ -45,4 +45,9 @@ class User_location_prefs extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + + function sequenceKey() + { + return array(false, false, false); + } } -- cgit v1.2.3-54-g00ecf From d46515da4239fcef57615f0155c9bbfce7346330 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Wed, 30 Dec 2009 20:12:01 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans --- locale/ar/LC_MESSAGES/statusnet.po | 179 +++---- locale/arz/LC_MESSAGES/statusnet.po | 179 +++---- locale/bg/LC_MESSAGES/statusnet.po | 186 +++---- locale/ca/LC_MESSAGES/statusnet.po | 179 +++---- locale/cs/LC_MESSAGES/statusnet.po | 179 +++---- locale/de/LC_MESSAGES/statusnet.po | 179 +++---- locale/el/LC_MESSAGES/statusnet.po | 179 +++---- locale/en_GB/LC_MESSAGES/statusnet.po | 179 +++---- locale/es/LC_MESSAGES/statusnet.po | 179 +++---- locale/fa/LC_MESSAGES/statusnet.po | 179 +++---- locale/fi/LC_MESSAGES/statusnet.po | 179 +++---- locale/fr/LC_MESSAGES/statusnet.po | 179 +++---- locale/ga/LC_MESSAGES/statusnet.po | 179 +++---- locale/he/LC_MESSAGES/statusnet.po | 179 +++---- locale/hsb/LC_MESSAGES/statusnet.po | 179 +++---- locale/ia/LC_MESSAGES/statusnet.po | 179 +++---- locale/is/LC_MESSAGES/statusnet.po | 179 +++---- locale/it/LC_MESSAGES/statusnet.po | 179 +++---- locale/ja/LC_MESSAGES/statusnet.po | 883 ++++++++++++++++++---------------- locale/ko/LC_MESSAGES/statusnet.po | 179 +++---- locale/mk/LC_MESSAGES/statusnet.po | 188 ++++---- locale/nb/LC_MESSAGES/statusnet.po | 179 +++---- locale/nl/LC_MESSAGES/statusnet.po | 179 +++---- locale/nn/LC_MESSAGES/statusnet.po | 179 +++---- locale/pl/LC_MESSAGES/statusnet.po | 217 +++++---- locale/pt/LC_MESSAGES/statusnet.po | 182 +++---- locale/pt_BR/LC_MESSAGES/statusnet.po | 179 +++---- locale/ru/LC_MESSAGES/statusnet.po | 181 +++---- locale/statusnet.po | 174 ++++--- locale/sv/LC_MESSAGES/statusnet.po | 179 +++---- locale/te/LC_MESSAGES/statusnet.po | 188 ++++---- locale/tr/LC_MESSAGES/statusnet.po | 179 +++---- locale/uk/LC_MESSAGES/statusnet.po | 179 +++---- locale/vi/LC_MESSAGES/statusnet.po | 179 +++---- locale/zh_CN/LC_MESSAGES/statusnet.po | 179 +++---- locale/zh_TW/LC_MESSAGES/statusnet.po | 179 +++---- 36 files changed, 3927 insertions(+), 3284 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 0a4bdeb2f..7053fbc47 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:09:41+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:07+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -188,11 +188,11 @@ msgstr "تعذّر تحديث تصميمك." msgid "You cannot block yourself!" msgstr "لا يمكنك منع نفسك!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "فشل منع المستخدم." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "فشل إلغاء منع المستخدم." @@ -304,31 +304,31 @@ msgid "Could not find target user." msgstr "تعذّر إيجاد المستخدم الهدف." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "الصفحة الرئيسية ليست عنونًا صالحًا." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" @@ -339,7 +339,7 @@ msgid "Description is too long (max %d chars)." msgstr "" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "" @@ -454,7 +454,7 @@ msgstr "" msgid "Not found" msgstr "لم يوجد" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -596,13 +596,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -672,7 +672,7 @@ msgstr "نعم" msgid "Block this user" msgstr "امنع هذا المستخدم" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "فشل حفظ معلومات المنع." @@ -744,7 +744,7 @@ msgstr "" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "تعذّر تحديث المستخدم." @@ -938,7 +938,7 @@ msgstr "ارجع إلى المبدئي" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1420,7 +1420,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "قائمة بمستخدمي هذه المجموعة." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "إداري" @@ -1507,7 +1507,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "المستخدم ليس ممنوعًا من المجموعة." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "خطأ أثناء منع الحجب." @@ -1772,7 +1772,7 @@ msgstr "اسم المستخدم أو كلمة السر غير صحيحان." msgid "Error setting user. You are probably not authorized." msgstr "خطأ أثناء ضبط المستخدم. لست مُصرحًا على الأرجح." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "لُج" @@ -1879,7 +1879,7 @@ msgstr "أُرسلت الرسالة" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "خطأ أجاكس" @@ -1887,7 +1887,7 @@ msgstr "خطأ أجاكس" msgid "New notice" msgstr "إشعار جديد" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "أُرسل الإشعار" @@ -2304,69 +2304,78 @@ msgstr "الموقع" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "الوسوم" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "اللغة" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "اللغة المفضلة" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "المنطقة الزمنية" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "ما المنطقة الزمنية التي تتواجد فيها عادة؟" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "لم تُختر المنطقة الزمنية." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "وسم غير صالح: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "تعذّر حفظ الوسوم." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "تعذّر حفظ الملف الشخصي." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "تعذّر حفظ الوسوم." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "حُفظت الإعدادات." @@ -2601,7 +2610,7 @@ msgstr "عذرا، رمز دعوة غير صالح." msgid "Registration successful" msgstr "نجح التسجيل" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "سجّل" @@ -3839,16 +3848,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "مشكلة أثناء حفظ الإشعار." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" @@ -3903,128 +3912,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "صفحة غير مُعنونة" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "الرئيسية" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "الملف الشخصي ومسار الأصدقاء الزمني" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "الحساب" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "اتصل" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "غيّر ضبط الموقع" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "ادعُ" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "اخرج" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "اخرج من الموقع" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "أنشئ حسابًا" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "مساعدة" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "ابحث" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نص" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "إشعار الموقع" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "المشاهدات المحلية" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "إشعار الصفحة" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "عن" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "الأسئلة المكررة" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "الشروط" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "خصوصية" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "المصدر" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "اتصل" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4033,12 +4042,12 @@ msgstr "" "**%%site.name%%** خدمة تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4049,31 +4058,31 @@ msgstr "" "المتوفر تحت [رخصة غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "رخصة محتوى الموقع" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "الرخصة." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "بعد" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "قبل" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -4885,6 +4894,14 @@ msgstr "أرفق" msgid "Attach a file" msgstr "أرفق ملفًا" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index c0ec3623e..eadbe6c6e 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:09:44+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:10+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -187,11 +187,11 @@ msgstr "تعذّر تحديث تصميمك." msgid "You cannot block yourself!" msgstr "ا يمكنك منع نفسك!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "فشل منع المستخدم." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "فشل إلغاء منع المستخدم." @@ -303,31 +303,31 @@ msgid "Could not find target user." msgstr "تعذّر إيجاد المستخدم الهدف." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "ليس اسمًا مستعارًا صحيحًا." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "الصفحه الرئيسيه ليست عنونًا صالحًا." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "الاسم الكامل طويل جدا (الأقصى 255 حرفًا)" @@ -338,7 +338,7 @@ msgid "Description is too long (max %d chars)." msgstr "" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "" @@ -453,7 +453,7 @@ msgstr "" msgid "Not found" msgstr "لم يوجد" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -595,13 +595,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -671,7 +671,7 @@ msgstr "نعم" msgid "Block this user" msgstr "امنع هذا المستخدم" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "فشل حفظ معلومات المنع." @@ -743,7 +743,7 @@ msgstr "" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "تعذّر تحديث المستخدم." @@ -937,7 +937,7 @@ msgstr "ارجع إلى المبدئي" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1419,7 +1419,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "قائمه بمستخدمى هذه المجموعه." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "إداري" @@ -1506,7 +1506,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "المستخدم ليس ممنوعًا من المجموعه." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "خطأ أثناء منع الحجب." @@ -1771,7 +1771,7 @@ msgstr "اسم المستخدم أو كلمه السر غير صحيحان." msgid "Error setting user. You are probably not authorized." msgstr "خطأ أثناء ضبط المستخدم. لست مُصرحًا على الأرجح." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "لُج" @@ -1878,7 +1878,7 @@ msgstr "أُرسلت الرسالة" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "خطأ أجاكس" @@ -1886,7 +1886,7 @@ msgstr "خطأ أجاكس" msgid "New notice" msgstr "إشعار جديد" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "أُرسل الإشعار" @@ -2303,69 +2303,78 @@ msgstr "الموقع" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "الوسوم" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "اللغة" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "اللغه المفضلة" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "المنطقه الزمنية" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "ما المنطقه الزمنيه التى تتواجد فيها عادة؟" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "لم تُختر المنطقه الزمنيه." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "وسم غير صالح: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "تعذّر حفظ الوسوم." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "تعذّر حفظ الملف الشخصى." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "تعذّر حفظ الوسوم." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "حُفظت الإعدادات." @@ -2600,7 +2609,7 @@ msgstr "عذرا، رمز دعوه غير صالح." msgid "Registration successful" msgstr "نجح التسجيل" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "سجّل" @@ -3838,16 +3847,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "مشكله أثناء حفظ الإشعار." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "آر تي @%1$s %2$s" @@ -3902,128 +3911,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "صفحه غير مُعنونة" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "الرئيسية" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "الملف الشخصى ومسار الأصدقاء الزمني" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "الحساب" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "اتصل" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "غيّر ضبط الموقع" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "ادعُ" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "اخرج" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "اخرج من الموقع" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "أنشئ حسابًا" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "لُج إلى الموقع" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "مساعدة" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "ساعدني!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "ابحث" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "ابحث عن أشخاص أو نص" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "إشعار الموقع" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "المشاهدات المحلية" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "إشعار الصفحة" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "عن" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "الأسئله المكررة" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "الشروط" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "خصوصية" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "المصدر" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "اتصل" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4032,12 +4041,12 @@ msgstr "" "**%%site.name%%** خدمه تدوين مصغر يقدمها لك [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4048,31 +4057,31 @@ msgstr "" "المتوفر تحت [رخصه غنو أفيرو العمومية](http://www.fsf.org/licensing/licenses/" "agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "رخصه محتوى الموقع" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "الرخصه." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "بعد" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "قبل" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -4884,6 +4893,14 @@ msgstr "أرفق" msgid "Attach a file" msgstr "أرفق ملفًا" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index b3940ff01..4f85d85d7 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -1,5 +1,6 @@ # Translation of StatusNet to Bulgarian # +# Author@translatewiki.net: DCLXVI # Author@translatewiki.net: Turin # -- # This file is distributed under the same license as the StatusNet package. @@ -8,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:09:50+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:13+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -188,11 +189,11 @@ msgstr "Грешка при обновяване на потребителя." msgid "You cannot block yourself!" msgstr "Не можете да блокирате себе си!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Грешка при блокиране на потребителя." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Грешка при разблокиране на потребителя." @@ -303,12 +304,11 @@ msgid "Could not determine source user." msgstr "Грешка при изтегляне на общия поток" #: actions/apifriendshipsshow.php:143 -#, fuzzy msgid "Could not find target user." -msgstr "Не са открити бележки." +msgstr "Целевият потребител не беше открит." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -316,25 +316,25 @@ msgstr "" "между тях." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Опитайте друг псевдоним, този вече е зает." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Неправилен псевдоним." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Адресът на личната страница не е правилен URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Пълното име е твърде дълго (макс. 255 знака)" @@ -345,7 +345,7 @@ msgid "Description is too long (max %d chars)." msgstr "Описанието е твърде дълго (до %d символа)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Името на местоположението е твърде дълго (макс. 255 знака)." @@ -460,7 +460,7 @@ msgstr "Твърде дълга бележка. Трябва да е най-мн msgid "Not found" msgstr "Не е открито." -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -604,13 +604,13 @@ msgid "Crop" msgstr "Изрязване" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -680,7 +680,7 @@ msgstr "Да" msgid "Block this user" msgstr "Блокиране на потребителя" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Грешка при записване данните за блокирането." @@ -754,7 +754,7 @@ msgstr "Този адрес е вече потвърден." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Грешка при обновяване на потребителя." @@ -954,7 +954,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1268,9 +1268,8 @@ msgid "No notice." msgstr "Липсва бележка." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "Няма такъв документ." +msgstr "Няма прикачени файлове." #: actions/file.php:51 #, fuzzy @@ -1458,7 +1457,7 @@ msgstr "Членове на групата %s, страница %d" msgid "A list of the users in this group." msgstr "Списък с потребителите в тази група." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Настройки" @@ -1549,7 +1548,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "Потребителят ви е блокирал." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Грешка при запазване на потребител." @@ -1857,7 +1856,7 @@ msgstr "Грешно име или парола." msgid "Error setting user. You are probably not authorized." msgstr "Забранено." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Вход" @@ -1970,7 +1969,7 @@ msgstr "Съобщението е изпратено" msgid "Direct message to %s sent" msgstr "Прякото съобщение до %s е изпратено." -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Грешка в Ajax" @@ -1978,7 +1977,7 @@ msgstr "Грешка в Ajax" msgid "New notice" msgstr "Нова бележка" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Бележката е публикувана" @@ -2401,71 +2400,80 @@ msgstr "Местоположение" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Къде се намирате (град, община, държава и т.н.)" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Етикети" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Език" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Предпочитан език" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Часови пояс" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "В кой часови пояс сте обикновено?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Автоматично абониране за всеки, който се абонира за мен (подходящо за " "ботове)." -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Биографията е твърде дълга (до %d символа)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Не е избран часови пояс" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Името на езика е твърде дълго (може да е до 50 знака)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Неправилен етикет: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Грешка при запазване етикетите." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Грешка при запазване на профила." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Грешка при запазване етикетите." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Настройките са запазени." @@ -2698,7 +2706,7 @@ msgstr "Грешка в кода за потвърждение." msgid "Registration successful" msgstr "Записването е успешно." -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Регистриране" @@ -4000,16 +4008,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Забранено ви е да публикувате бележки в този сайт." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Проблем при записване на бележката." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Грешка в базата от данни — отговор при вмъкването: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4066,132 +4074,132 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Неозаглавена страница" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Начало" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Сметка" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Промяна на поща, аватар, парола, профил" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Свързване" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Свързване към услуги" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Промяна настройките на сайта" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Покани" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Поканете приятели и колеги да се присъединят към вас в %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Изход" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Излизане от сайта" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Създаване на нова сметка" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Влизане в сайта" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Помощ" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "Помощ" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Търсене" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Търсене за хора или бележки" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Нова бележка" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Нова бележка" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Абонаменти" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Относно" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Въпроси" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "Условия" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Поверителност" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Изходен код" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Контакт" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Табелка" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Лиценз на програмата StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4200,12 +4208,12 @@ msgstr "" "**%%site.name%%** е услуга за микроблогване, предоставена ви от [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е услуга за микроблогване. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4216,31 +4224,31 @@ msgstr "" "достъпна под [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Лиценз на съдържанието" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Всички " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "лиценз." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Страниране" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "След" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Преди" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Имаше проблем със сесията ви в сайта." @@ -5064,6 +5072,14 @@ msgstr "Прикрепяне" msgid "Attach a file" msgstr "Прикрепяне на файл" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index f897ec18d..3c275d0ce 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:09:53+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:17+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -195,11 +195,11 @@ msgstr "No s'ha pogut actualitzar l'usuari." msgid "You cannot block yourself!" msgstr "No podeu suprimir els usuaris." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Ha fallat el bloqueig d'usuari." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Ha fallat el desbloqueig d'usuari." @@ -316,7 +316,7 @@ msgid "Could not find target user." msgstr "No es pot trobar cap estatus." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -324,25 +324,25 @@ msgstr "" "espais." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Aquest sobrenom ja existeix. Prova un altre. " #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Sobrenom no vàlid." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "La pàgina personal no és un URL vàlid." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "El teu nom és massa llarg (màx. 255 caràcters)." @@ -353,7 +353,7 @@ msgid "Description is too long (max %d chars)." msgstr "La descripció és massa llarga (màx. %d caràcters)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "La ubicació és massa llarga (màx. 255 caràcters)." @@ -470,7 +470,7 @@ msgstr "Massa llarg. La longitud màxima és de %d caràcters." msgid "Not found" msgstr "No s'ha trobat" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -613,13 +613,13 @@ msgid "Crop" msgstr "Retalla" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -693,7 +693,7 @@ msgstr "Sí" msgid "Block this user" msgstr "Bloquejar aquest usuari" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Error al guardar la informació del block." @@ -767,7 +767,7 @@ msgstr "Aquesta adreça ja ha estat confirmada." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "No s'ha pogut actualitzar l'usuari." @@ -969,7 +969,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1471,7 +1471,7 @@ msgstr "%s membre/s en el grup, pàgina %d" msgid "A list of the users in this group." msgstr "La llista dels usuaris d'aquest grup." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" @@ -1560,7 +1560,7 @@ msgstr "Només un administrador pot desblocar els membres del grup." msgid "User is not blocked from group." msgstr "L'usuari no està blocat del grup." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "S'ha produït un error en suprimir el bloc." @@ -1874,7 +1874,7 @@ msgstr "Nom d'usuari o contrasenya incorrectes." msgid "Error setting user. You are probably not authorized." msgstr "No autoritzat." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Inici de sessió" @@ -1988,7 +1988,7 @@ msgstr "S'ha enviat el missatge" msgid "Direct message to %s sent" msgstr "Missatge directe per a %s enviat" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax Error" @@ -1996,7 +1996,7 @@ msgstr "Ajax Error" msgid "New notice" msgstr "Nou avís" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Notificació publicada" @@ -2428,73 +2428,82 @@ msgstr "Ubicació" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "On ets, per exemple \"Ciutat, Estat (o Regió), País\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Etiquetes" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Etiquetes per a tu mateix (lletres, números, -, ., i _), per comes o separat " "por espais" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Idioma" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Preferència d'idioma" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Franja horària" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Quina franja horària seria normal ser?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Automàticament subscriure's a qualsevol que ho estigui a tu mateix (ideal " "per no-humans)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "La biografia és massa llarga (màx. %d caràcters)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Franja horària no seleccionada." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "L'idioma és massa llarg (màx 50 caràcters)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta no vàlida: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "No es pot actualitzar l'usuari per autosubscriure." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "No s'han pogut guardar les etiquetes." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "No s'ha pogut guardar el perfil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "No s'han pogut guardar les etiquetes." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Configuració guardada." @@ -2731,7 +2740,7 @@ msgstr "El codi d'invitació no és vàlid." msgid "Registration successful" msgstr "Registre satisfactori" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registre" @@ -4052,16 +4061,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Ha estat bandejat de publicar notificacions en aquest lloc." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problema en guardar l'avís." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Error de BD en inserir resposta: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4117,129 +4126,129 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Pàgina sense titol" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Navegació primària del lloc" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Inici" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Perfil personal i línia temporal dels amics" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Compte" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Canviar correu electrònic, avatar, contrasenya, perfil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Connexió" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "No s'ha pogut redirigir al servidor: %s" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Canvia la configuració del lloc" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Convida" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amics i companys perquè participin a %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Finalitza la sessió" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Finalitza la sessió del lloc" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Crea un compte" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Inicia una sessió al lloc" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Ajuda" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Ajuda'm" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Cerca" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Cerca gent o text" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Avís del lloc" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Vistes locals" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Notificació pàgina" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Navegació del lloc secundària" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Quant a" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Preguntes més freqüents" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privadesa" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Font" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contacte" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Insígnia" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Llicència del programari StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4248,12 +4257,12 @@ msgstr "" "**%%site.name%%** és un servei de microblogging de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** és un servei de microblogging." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4264,32 +4273,32 @@ msgstr "" "%s, disponible sota la [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Llicència del programari StatusNet" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Tot " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "llicència." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginació" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Posteriors" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Anteriors" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Ha ocorregut algun problema amb la teva sessió." @@ -5116,6 +5125,14 @@ msgstr "Adjunta" msgid "Attach a file" msgstr "Adjunta un fitxer" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 6cc1e1dbf..aa5d77f2e 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:09:56+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:19+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -194,11 +194,11 @@ msgstr "Nelze aktualizovat uživatele" msgid "You cannot block yourself!" msgstr "Nelze aktualizovat uživatele" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -313,31 +313,31 @@ msgid "Could not find target user." msgstr "Nelze aktualizovat uživatele" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Přezdívka může obsahovat pouze malá písmena a čísla bez mezer" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Přezdívku již někdo používá. Zkuste jinou" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Není platnou přezdívkou." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Stránka není platnou URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Jméno je moc dlouhé (maximální délka je 255 znaků)" @@ -348,7 +348,7 @@ msgid "Description is too long (max %d chars)." msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Umístění příliš dlouhé (maximálně 255 znaků)" @@ -469,7 +469,7 @@ msgstr "Je to příliš dlouhé. Maximální sdělení délka je 140 znaků" msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -615,13 +615,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -694,7 +694,7 @@ msgstr "Ano" msgid "Block this user" msgstr "Zablokovat tohoto uživatele" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -768,7 +768,7 @@ msgstr "Adresa již byla potvrzena" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Nelze aktualizovat uživatele" @@ -972,7 +972,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1477,7 +1477,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1570,7 +1570,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "Uživatel nemá profil." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Chyba při ukládaní uživatele" @@ -1849,7 +1849,7 @@ msgstr "Neplatné jméno nebo heslo" msgid "Error setting user. You are probably not authorized." msgstr "Neautorizován." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Přihlásit" @@ -1959,7 +1959,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1967,7 +1967,7 @@ msgstr "" msgid "New notice" msgstr "Nové sdělení" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "Sdělení" @@ -2406,70 +2406,79 @@ msgstr "Umístění" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Místo. Město, stát." -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Jazyk" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Text je příliš dlouhý (maximální délka je 140 zanků)" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "Neplatná adresa '%s'" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Nelze uložit profil" + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Nelze uložit profil" -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "Nelze uložit profil" -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Nastavení uloženo" @@ -2705,7 +2714,7 @@ msgstr "Chyba v ověřovacím kódu" msgid "Registration successful" msgstr "Registrace úspěšná" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrovat" @@ -4006,16 +4015,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problém při ukládání sdělení" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Chyba v DB při vkládání odpovědi: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4074,135 +4083,135 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Domů" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "O nás" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Připojit" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Nelze přesměrovat na server: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Odběry" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Odhlásit" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "Vytvořit nový účet" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Nápověda" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Pomoci mi!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Hledat" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Nové sdělení" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Nové sdělení" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Odběry" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "O nás" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Soukromí" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Zdroj" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4211,12 +4220,12 @@ msgstr "" "**%%site.name%%** je služba microblogů, kterou pro vás poskytuje [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** je služba mikroblogů." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4227,34 +4236,34 @@ msgstr "" "dostupná pod [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Nové sdělení" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "« Novější" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "Starší »" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5086,6 +5095,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 42cc95a1e..91ca2e0c0 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:00+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:23+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -200,11 +200,11 @@ msgstr "Konnte Benutzerdesign nicht aktualisieren." msgid "You cannot block yourself!" msgstr "Du kannst dich nicht selbst entfolgen!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blockieren des Benutzers fehlgeschlagen." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Freigeben des Benutzers fehlgeschlagen." @@ -319,7 +319,7 @@ msgid "Could not find target user." msgstr "Konnte keine Statusmeldungen finden." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -327,26 +327,26 @@ msgstr "" "Leerzeichen sind nicht erlaubt." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Nutzername wird bereits verwendet. Suche dir einen anderen aus." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ungültiger Nutzername." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "" "Homepage ist keine gültige URL. URL’s müssen ein Präfix wie http enthalten." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Der vollständige Name ist zu lang (maximal 255 Zeichen)." @@ -357,7 +357,7 @@ msgid "Description is too long (max %d chars)." msgstr "Die Beschreibung ist zu lang (max. %d Zeichen)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Der eingegebene Aufenthaltsort ist zu lang (maximal 255 Zeichen)." @@ -475,7 +475,7 @@ msgstr "" msgid "Not found" msgstr "Nicht gefunden" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -620,13 +620,13 @@ msgid "Crop" msgstr "Zuschneiden" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -697,7 +697,7 @@ msgstr "Ja" msgid "Block this user" msgstr "Diesen Benutzer blockieren" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Konnte Blockierungsdaten nicht speichern." @@ -769,7 +769,7 @@ msgstr "Diese Adresse wurde bereits bestätigt." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Konnte Benutzerdaten nicht aktualisieren." @@ -967,7 +967,7 @@ msgstr "Standard wiederherstellen" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1464,7 +1464,7 @@ msgstr "%s Gruppen-Mitglieder, Seite %d" msgid "A list of the users in this group." msgstr "Liste der Benutzer in dieser Gruppe." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" @@ -1558,7 +1558,7 @@ msgstr "Nur Administratoren können Gruppenmitglieder entsperren." msgid "User is not blocked from group." msgstr "Dieser Nutzer ist nicht von der Gruppe gesperrt." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Fehler beim Freigeben des Benutzers." @@ -1872,7 +1872,7 @@ msgid "Error setting user. You are probably not authorized." msgstr "" "Fehler beim setzen des Benutzers. Du bist vermutlich nicht autorisiert." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Anmelden" @@ -1984,7 +1984,7 @@ msgstr "Nachricht gesendet" msgid "Direct message to %s sent" msgstr "Direkte Nachricht an %s abgeschickt" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax-Fehler" @@ -1992,7 +1992,7 @@ msgstr "Ajax-Fehler" msgid "New notice" msgstr "Neue Nachricht" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Nachricht hinzugefügt" @@ -2422,73 +2422,82 @@ msgstr "Aufenthaltsort" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Wo du bist, beispielsweise „Stadt, Gebiet, Land“" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Tags über dich selbst (Buchstaben, Zahlen, -, ., und _) durch Kommas oder " "Leerzeichen getrennt" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Sprache" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Bevorzugte Sprache" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Zeitzone" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "In welcher Zeitzone befindest du dich üblicherweise?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Abonniere automatisch alle Kontakte, die mich abonnieren (sinnvoll für Nicht-" "Menschen)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Die Biografie ist zu lang (max. %d Zeichen)" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Keine Zeitzone ausgewählt." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Die eingegebene Sprache ist zu lang (maximal 50 Zeichen)" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ungültiger Tag: „%s“" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Autosubscribe konnte nicht aktiviert werden." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Konnte Tags nicht speichern." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Konnte Profil nicht speichern." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Konnte Tags nicht speichern." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Einstellungen gespeichert." @@ -2722,7 +2731,7 @@ msgstr "Entschuldigung, ungültiger Bestätigungscode." msgid "Registration successful" msgstr "Registrierung erfolgreich" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrieren" @@ -4061,16 +4070,16 @@ msgid "You are banned from posting notices on this site." msgstr "" "Du wurdest für das Schreiben von Nachrichten auf dieser Seite gesperrt." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problem bei Speichern der Nachricht." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Datenbankfehler beim Einfügen der Antwort: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4126,131 +4135,131 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Seite ohne Titel" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Hauptnavigation" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Startseite" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Persönliches Profil und Freundes-Zeitleiste" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Konto" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Ändere deine E-Mail, dein Avatar, Passwort, Profil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Verbinden" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Konnte nicht zum Server umleiten: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Hauptnavigation" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Einladen" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Lade Freunde und Kollegen ein dir auf %s zu folgen" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Abmelden" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Von der Seite abmelden" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Neues Konto erstellen" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Auf der Seite anmelden" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Hilfe" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Hilf mir!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Suchen" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Suche nach Leuten oder Text" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Seitennachricht" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Lokale Ansichten" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Neue Nachricht" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Unternavigation" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Über" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "AGB" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privatsphäre" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Quellcode" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "Stups" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4259,12 +4268,12 @@ msgstr "" "**%%site.name%%** ist ein Microbloggingdienst von [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** ist ein Microbloggingdienst." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4275,32 +4284,32 @@ msgstr "" "(Version %s) betrieben, die unter der [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html) erhältlich ist." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "StatusNet-Software-Lizenz" -#: lib/action.php:799 +#: lib/action.php:800 #, fuzzy msgid "All " msgstr "Alle " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "Lizenz." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Seitenerstellung" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Später" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Vorher" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Es gab ein Problem mit deinem Sessiontoken." @@ -5183,6 +5192,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 91637b930..0ccb09a9b 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:05+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:26+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -191,11 +191,11 @@ msgstr "Απέτυχε η ενημέρωση του χρήστη." msgid "You cannot block yourself!" msgstr "Δεν μπορείτε να εμποδίσετε τον εαυτό σας!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -311,31 +311,31 @@ msgid "Could not find target user." msgstr "Απέτυχε η εύρεση οποιασδήποτε κατάστασης." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Το ψευδώνυμο πρέπει να έχει μόνο πεζούς χαρακτήρες και χωρίς κενά." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Το ψευδώνυμο είναι ήδη σε χρήση. Δοκιμάστε κάποιο άλλο." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Η αρχική σελίδα δεν είναι έγκυρο URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Το ονοματεπώνυμο είναι πολύ μεγάλο (μέγιστο 255 χαρακτ.)." @@ -346,7 +346,7 @@ msgid "Description is too long (max %d chars)." msgstr "Η περιγραφή είναι πολύ μεγάλη (μέγιστο %d χαρακτ.)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Η τοποθεσία είναι πολύ μεγάλη (μέγιστο 255 χαρακτ.)." @@ -463,7 +463,7 @@ msgstr "" msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -605,13 +605,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -684,7 +684,7 @@ msgstr "Ναί" msgid "Block this user" msgstr "" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -756,7 +756,7 @@ msgstr "" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Απέτυχε η ενημέρωση του χρήστη." @@ -956,7 +956,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1455,7 +1455,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Διαχειριστής" @@ -1544,7 +1544,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "" @@ -1815,7 +1815,7 @@ msgstr "Λάθος όνομα χρήστη ή κωδικός" msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Σύνδεση" @@ -1927,7 +1927,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1935,7 +1935,7 @@ msgstr "" msgid "New notice" msgstr "" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "" @@ -2363,34 +2363,38 @@ msgstr "Τοποθεσία" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 #, fuzzy msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" @@ -2398,38 +2402,43 @@ msgstr "" "Αυτόματα γίνε συνδρομητής σε όσους γίνονται συνδρομητές σε μένα (χρήση " "κυρίως από λογισμικό και όχι ανθρώπους)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Το βιογραφικό είναι πολύ μεγάλο (μέγιστο 140 χαρακτ.)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Απέτυχε η ενημέρωση του χρήστη για την αυτόματη συνδρομή." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Αδύνατη η αποθήκευση του προφίλ." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Απέτυχε η αποθήκευση του προφίλ." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "Αδύνατη η αποθήκευση του προφίλ." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "" @@ -2661,7 +2670,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3940,16 +3949,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Σφάλμα βάσης δεδομένων κατά την εισαγωγή απάντησης: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4005,129 +4014,129 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Αρχή" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Λογαριασμός" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Σύνδεση" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Αδυναμία ανακατεύθηνσης στο διακομιστή: %s" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Προσκάλεσε φίλους και συναδέλφους σου να γίνουν μέλη στο %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Αποσύνδεση" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Δημιουργία έναν λογαριασμού" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Βοήθεια" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Βοηθήστε με!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Περί" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Συχνές ερωτήσεις" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Επικοινωνία" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, fuzzy, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4136,13 +4145,13 @@ msgstr "" "To **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου) που " "έφερε κοντά σας το [%%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, fuzzy, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" "Το **%%site.name%%** είναι μία υπηρεσία microblogging (μικρο-ιστολογίου). " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4150,31 +4159,31 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -4983,6 +4992,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 115d94ace..5912c76dd 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:08+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:30+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -201,11 +201,11 @@ msgstr "Could not update your design." msgid "You cannot block yourself!" msgstr "You cannot block yourself!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Block user failed." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Unblock user failed." @@ -317,31 +317,31 @@ msgid "Could not find target user." msgstr "Could not find target user." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Nickname must have only lowercase letters and numbers, and no spaces." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Nickname already in use. Try another one." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Not a valid nickname." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Homepage is not a valid URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Full name is too long (max 255 chars)." @@ -352,7 +352,7 @@ msgid "Description is too long (max %d chars)." msgstr "Description is too long (max %d chars)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Location is too long (max 255 chars)." @@ -467,7 +467,7 @@ msgstr "That's too long. Max notice size is %d chars." msgid "Not found" msgstr "Not found" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Max notice size is %d chars, including attachment URL." @@ -609,13 +609,13 @@ msgid "Crop" msgstr "Crop" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -688,7 +688,7 @@ msgstr "Yes" msgid "Block this user" msgstr "Block this user" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Failed to save block information." @@ -760,7 +760,7 @@ msgstr "That address has already been confirmed." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Couldn't update user." @@ -965,7 +965,7 @@ msgstr "Reset back to default" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1476,7 +1476,7 @@ msgstr "%s group members, page %d" msgid "A list of the users in this group." msgstr "A list of the users in this group." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" @@ -1568,7 +1568,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "User is not blocked from group." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Error removing the block." @@ -1874,7 +1874,7 @@ msgstr "Incorrect username or password." msgid "Error setting user. You are probably not authorized." msgstr "You are not authorised." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Login" @@ -1986,7 +1986,7 @@ msgstr "Message sent" msgid "Direct message to %s sent" msgstr "Direct message to %s sent" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax Error" @@ -1994,7 +1994,7 @@ msgstr "Ajax Error" msgid "New notice" msgstr "New notice" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Notice posted" @@ -2424,71 +2424,80 @@ msgstr "Location" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Where you are, like \"City, State (or Region), Country\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Language" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Preferred language" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Timezone" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "In which timezone are you?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Bio is too long (max %d chars)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Timezone not selected." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Language is too long (max 50 chars)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Invalid tag: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Couldn't update user for autosubscribe." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Couldn't save tags." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Couldn't save profile." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Couldn't save tags." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Settings saved." @@ -2730,7 +2739,7 @@ msgstr "Error with confirmation code." msgid "Registration successful" msgstr "Registration successful" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Register" @@ -4049,16 +4058,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "You are banned from posting notices on this site." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problem saving notice." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "DB error inserting reply: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4113,130 +4122,130 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Untitled page" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Primary site navigation" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Home" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Personal profile and friends timeline" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Account" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Change your e-mail, avatar, password, profile" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Connect" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Could not redirect to server: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Primary site navigation" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Invite" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Invite friends and colleagues to join you on %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Logout" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Logout from the site" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Create an account" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Login to the site" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Help" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Help me!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Search" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Search for people or text" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Site notice" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Local views" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Page notice" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Secondary site navigation" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "About" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "F.A.Q." -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Source" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contact" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Badge" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNet software licence" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4245,12 +4254,12 @@ msgstr "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is a microblogging service." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4261,31 +4270,31 @@ msgstr "" "s, available under the [GNU Affero General Public Licence](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Site content license" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "All " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licence." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "After" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Before" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "There was a problem with your session token." @@ -5119,6 +5128,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index e0e5ebba7..5804171cb 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:11+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:32+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -196,11 +196,11 @@ msgstr "No se pudo actualizar el usuario." msgid "You cannot block yourself!" msgstr "¡No puedes bloquearte a tí mismo!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Falló bloquear usuario." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Falló desbloquear usuario." @@ -312,7 +312,7 @@ msgid "Could not find target user." msgstr "No se pudo encontrar ningún usuario de destino." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -320,25 +320,25 @@ msgstr "" "espacios." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "El apodo ya existe. Prueba otro." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Apodo no válido" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "La página de inicio no es un URL válido." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Tu nombre es demasiado largo (max. 255 carac.)" @@ -349,7 +349,7 @@ msgid "Description is too long (max %d chars)." msgstr "La descripción es demasiado larga (máx. %d caracteres)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "La ubicación es demasiado larga (máx. 255 caracteres)." @@ -467,7 +467,7 @@ msgstr "Demasiado largo. La longitud máxima es de 140 caracteres. " msgid "Not found" msgstr "No encontrado" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -611,13 +611,13 @@ msgid "Crop" msgstr "Cortar" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -691,7 +691,7 @@ msgstr "Sí" msgid "Block this user" msgstr "Bloquear este usuario." -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "No se guardó información de bloqueo." @@ -764,7 +764,7 @@ msgstr "Esa dirección ya fue confirmada." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "No se pudo actualizar el usuario." @@ -971,7 +971,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1475,7 +1475,7 @@ msgstr "Miembros del grupo %s, página %d" msgid "A list of the users in this group." msgstr "Lista de los usuarios en este grupo." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" @@ -1569,7 +1569,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "El usuario te ha bloqueado." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Error al sacar bloqueo." @@ -1884,7 +1884,7 @@ msgstr "Nombre de usuario o contraseña incorrectos." msgid "Error setting user. You are probably not authorized." msgstr "No autorizado." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Inicio de sesión" @@ -1999,7 +1999,7 @@ msgstr "Mensaje" msgid "Direct message to %s sent" msgstr "Se envió mensaje directo a %s" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Error de Ajax" @@ -2007,7 +2007,7 @@ msgstr "Error de Ajax" msgid "New notice" msgstr "Nuevo aviso" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "Aviso publicado" @@ -2454,72 +2454,81 @@ msgstr "Ubicación" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Dónde estás, por ejemplo \"Ciudad, Estado (o Región), País\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "Tags para ti (letras, números, -, ., y _), coma - o espacio - separado" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Idioma" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Lenguaje de preferencia" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Zona horaria" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "En que zona horaria se encuentra normalmente?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Suscribirse automáticamente a quien quiera que se suscriba a mí (es mejor " "para no-humanos)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "La biografía es demasiado larga (máx. 140 caracteres)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Zona horaria no seleccionada" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Idioma es muy largo ( max 50 car.)" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "Tag no válido: '%s' " -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "No se pudo actualizar el usuario para autosuscribirse." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "No se pudo guardar tags." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "No se pudo guardar el perfil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "No se pudo guardar tags." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Se guardó configuración." @@ -2761,7 +2770,7 @@ msgstr "Error con el código de confirmación." msgid "Registration successful" msgstr "Registro exitoso." -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrarse" @@ -4109,16 +4118,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Tienes prohibido publicar avisos en este sitio." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Hubo un problema al guardar el aviso." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Error de BD al insertar respuesta: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4174,129 +4183,129 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Página sin título" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Navegación de sitio primario" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Inicio" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Perfil personal y línea de tiempo de amigos" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Cuenta" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Cambia tu correo electrónico, avatar, contraseña, perfil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Conectarse" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Conectar a los servicios" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Navegación de sitio primario" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Invitar" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Invita a amigos y colegas a unirse a %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Salir" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Salir de sitio" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Crear una cuenta" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Ingresar a sitio" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Ayuda" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Ayúdame!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Buscar" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Buscar personas o texto" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Aviso de sitio" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Vistas locales" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Aviso de página" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Navegación de sitio secundario" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Acerca de" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Preguntas Frecuentes" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacidad" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Fuente" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Ponerse en contacto" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Insignia" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Licencia de software de StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4305,12 +4314,12 @@ msgstr "" "**%%site.name%%** es un servicio de microblogueo de [%%site.broughtby%%**](%%" "site.broughtbyurl%%)." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** es un servicio de microblogueo." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4321,31 +4330,31 @@ msgstr "" "disponible bajo la [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licencia de contenido del sitio" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Todo" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "Licencia." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginación" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Después" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Antes" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Hubo problemas con tu clave de sesión." @@ -5177,6 +5186,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index f6c9559aa..c62aeb47d 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:17+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:39+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 @@ -195,11 +195,11 @@ msgstr "نمی‌توان طرح‌تان به‌هنگام‌سازی کرد." msgid "You cannot block yourself!" msgstr "شما نمی‌توانید خودتان رو مسدود کنید!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "مسدود کردن کاربر شکست خورد." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "باز کردن کاربر ناموفق بود." @@ -311,31 +311,31 @@ msgid "Could not find target user." msgstr "نمی‌توان کاربر هدف را پیدا کرد." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "لقب باید شامل حروف کوچک و اعداد و بدون فاصله باشد." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "این لقب در حال حاضر ثبت شده است. لطفا یکی دیگر انتخاب کنید." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "لقب نا معتبر." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "برگهٔ آغازین یک نشانی معتبر نیست." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "نام کامل طولانی است (۲۵۵ حرف در حالت بیشینه(." @@ -346,7 +346,7 @@ msgid "Description is too long (max %d chars)." msgstr "توصیف بسیار زیاد است (حداکثر %d حرف)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "مکان طولانی است (حداکثر ۲۵۵ حرف)" @@ -461,7 +461,7 @@ msgstr "خیلی طولانی است. حداکثر طول مجاز پیام %d msgid "Not found" msgstr "یافت نشد" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "حداکثر طول پیام %d حرف است که شامل ضمیمه نیز می‌باشد" @@ -604,13 +604,13 @@ msgid "Crop" msgstr "برش" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -684,7 +684,7 @@ msgstr "بله" msgid "Block this user" msgstr "کاربر را مسدود کن" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -756,7 +756,7 @@ msgstr "آن نشانی در حال حاضر تصدیق شده است." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "نمی‌توان کاربر را به روز کرد." @@ -956,7 +956,7 @@ msgstr "برگشت به حالت پیش گزیده" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1445,7 +1445,7 @@ msgstr "اعضای گروه %s، صفحهٔ %d" msgid "A list of the users in this group." msgstr "یک فهرست از کاربران در این گروه" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "مدیر" @@ -1541,7 +1541,7 @@ msgstr "تنها یک مدیر توانایی برداشتن منع کاربرا msgid "User is not blocked from group." msgstr "کاربر از گروه منع نشده است." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "اشکال در پاکسازی" @@ -1818,7 +1818,7 @@ msgstr "نام کاربری یا رمز عبور نادرست." msgid "Error setting user. You are probably not authorized." msgstr "خطا در تنظیم کاربر. شما احتمالا اجازه ی این کار را ندارید." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "ورود" @@ -1929,7 +1929,7 @@ msgstr "پیام فرستاده‌شد" msgid "Direct message to %s sent" msgstr "پیام مستقیم به %s فرستاده شد." -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "اشکال آژاکسی" @@ -1937,7 +1937,7 @@ msgstr "اشکال آژاکسی" msgid "New notice" msgstr "آگهی جدید" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "آگهی فرستاده‌شد." @@ -2368,69 +2368,78 @@ msgstr "موقعیت" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "برچسب‌ها" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "زبان" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "زبان برگزیده" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "منطقهٔ‌زمانی" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "شما معمولا در کدام منطقه ی زمانی هستید؟" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "منطقه‌ی زمانی انتخاب نشده است." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "کلام بسیار طولانی است( حداکثر ۵۰ کاراکتر)" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "نشان نادرست »%s«" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "نمی‌توان نشان را ذخیره کرد." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "نمی‌توان شناسه را ذخیره کرد." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "نمی‌توان نشان را ذخیره کرد." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "تنظیمات ذخیره شد." @@ -2663,7 +2672,7 @@ msgstr "با عرض تاسف، کد دعوت نا معتبر است." msgid "Registration successful" msgstr "ثبت نام با موفقیت انجام شد." -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "ثبت نام" @@ -3911,16 +3920,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "شما از فرستادن پست در این سایت مردود شدید ." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "مشکل در ذخیره کردن آگهی." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -3975,140 +3984,140 @@ msgstr "" msgid "Untitled page" msgstr "صفحه ی بدون عنوان" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "خانه" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "حساب کاربری" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "آدرس ایمیل، آواتار، کلمه ی عبور، پروفایل خود را تغییر دهید" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "وصل‌شدن" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "متصل شدن به خدمات" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "تغییر پیکربندی سایت" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "دعوت‌کردن" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr " به شما ملحق شوند %s دوستان و همکاران را دعوت کنید تا در" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "خروج" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "خارج شدن از سایت ." -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "یک حساب کاربری بسازید" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "ورود به وب‌گاه" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "کمک" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "به من کمک کنید!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "جست‌وجو" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "جستجو برای شخص با متن" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "خبر سایت" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "دید محلی" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "خبر صفحه" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "دربارهٔ" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "سوال‌های رایج" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "خصوصی" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "منبع" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "تماس" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNet مجوز نرم افزار" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4116,31 +4125,31 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "مجوز محتویات سایت" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "همه " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "مجوز." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "صفحه بندى" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "بعد از" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "قبل از" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -4947,6 +4956,14 @@ msgstr "ضمیمه کردن" msgid "Attach a file" msgstr "یک فایل ضمیمه کنید" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 8887a7b91..fb1bf1900 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:14+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:36+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -198,11 +198,11 @@ msgstr "Ei voitu päivittää käyttäjää." msgid "You cannot block yourself!" msgstr "Et voi lopettaa itsesi tilausta!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Käyttäjän esto epäonnistui." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Käyttäjän eston poisto epäonnistui." @@ -317,7 +317,7 @@ msgid "Could not find target user." msgstr "Ei löytynyt yhtään päivitystä." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -325,25 +325,25 @@ msgstr "" "välilyöntiä." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Tunnus on jo käytössä. Yritä toista tunnusta." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Tuo ei ole kelvollinen tunnus." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Kotisivun verkko-osoite ei ole toimiva." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Koko nimi on liian pitkä (max 255 merkkiä)." @@ -354,7 +354,7 @@ msgid "Description is too long (max %d chars)." msgstr "kuvaus on liian pitkä (max 140 merkkiä)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Kotipaikka on liian pitkä (max 255 merkkiä)." @@ -471,7 +471,7 @@ msgstr "Päivitys on liian pitkä. Maksimipituus on %d merkkiä." msgid "Not found" msgstr "Ei löytynyt" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maksimikoko päivitykselle on %d merkkiä, mukaan lukien URL-osoite." @@ -614,13 +614,13 @@ msgid "Crop" msgstr "Rajaa" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -693,7 +693,7 @@ msgstr "Kyllä" msgid "Block this user" msgstr "Estä tämä käyttäjä" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Käyttäjän estotiedon tallennus epäonnistui." @@ -766,7 +766,7 @@ msgstr "Tämä osoite on jo vahvistettu." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Ei voitu päivittää käyttäjää." @@ -973,7 +973,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1472,7 +1472,7 @@ msgstr "Ryhmän %s jäsenet, sivu %d" msgid "A list of the users in this group." msgstr "Lista ryhmän käyttäjistä." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Ylläpito" @@ -1562,7 +1562,7 @@ msgstr "Vain ylläpitäjä voi poistaa eston ryhmän jäseniltä." msgid "User is not blocked from group." msgstr "Käyttäjää ei ole estetty ryhmästä." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Tapahtui virhe, kun estoa poistettiin." @@ -1874,7 +1874,7 @@ msgstr "Väärä käyttäjätunnus tai salasana" msgid "Error setting user. You are probably not authorized." msgstr "Sinulla ei ole valtuutusta tähän." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Kirjaudu sisään" @@ -1988,7 +1988,7 @@ msgstr "Viesti lähetetty" msgid "Direct message to %s sent" msgstr "Suora viesti käyttäjälle %s lähetetty" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax-virhe" @@ -1996,7 +1996,7 @@ msgstr "Ajax-virhe" msgid "New notice" msgstr "Uusi päivitys" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Päivitys lähetetty" @@ -2439,73 +2439,82 @@ msgstr "Kotipaikka" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Olinpaikka kuten \"Kaupunki, Maakunta (tai Lääni), Maa\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tagit" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Kuvaa itseäsi henkilötageilla (sanoja joissa voi olla muita kirjaimia kuin " "ääkköset, numeroita, -, ., ja _), pilkulla tai välilyönnillä erotettuna" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Kieli" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Ensisijainen kieli" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Aikavyöhyke" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Missä aikavyöhykkeessä olet normaalisti?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Tilaa automaattisesti kaikki, jotka tilaavat päivitykseni (ei sovi hyvin " "ihmiskäyttäjille)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "\"Tietoja\" on liian pitkä (max 140 merkkiä)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Aikavyöhykettä ei ole valittu." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Kieli on liian pitkä (max 50 merkkiä)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Virheellinen tagi: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Ei voitu asettaa käyttäjälle automaattista tilausta." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Tageja ei voitu tallentaa." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Ei voitu tallentaa profiilia." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Tageja ei voitu tallentaa." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Asetukset tallennettu." @@ -2742,7 +2751,7 @@ msgstr "Virheellinen kutsukoodin." msgid "Registration successful" msgstr "Rekisteröityminen onnistui" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Rekisteröidy" @@ -4081,16 +4090,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Päivityksesi tähän palveluun on estetty." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Ongelma päivityksen tallentamisessa." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Tietokantavirhe tallennettaessa vastausta: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4146,131 +4155,131 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Nimetön sivu" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Ensisijainen sivunavigointi" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Koti" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Henkilökohtainen profiili ja kavereiden aikajana" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Käyttäjätili" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Muuta sähköpostiosoitettasi, kuvaasi, salasanaasi, profiiliasi" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Yhdistä" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Ei voitu uudelleenohjata palvelimelle: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Ensisijainen sivunavigointi" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Kutsu" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Kutsu kavereita ja työkavereita liittymään palveluun %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Kirjaudu ulos" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Kirjaudu ulos palvelusta" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Luo uusi käyttäjätili" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Kirjaudu sisään palveluun" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Ohjeet" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Auta minua!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Haku" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Hae ihmisiä tai tekstiä" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Palvelun ilmoitus" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Paikalliset näkymät" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Sivuilmoitus" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Toissijainen sivunavigointi" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Tietoa" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "UKK" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Yksityisyys" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Lähdekoodi" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Ota yhteyttä" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "Tönäise" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4279,12 +4288,12 @@ msgstr "" "**%%site.name%%** on mikroblogipalvelu, jonka tarjoaa [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** on mikroblogipalvelu. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4295,32 +4304,32 @@ msgstr "" "versio %s, saatavilla lisenssillä [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "StatusNet-ohjelmiston lisenssi" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Kaikki " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "lisenssi." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Sivutus" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Myöhemmin" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Aiemmin" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Istuntoavaimesi kanssa oli ongelma." @@ -5162,6 +5171,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index c3b1a0527..58cb965af 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:21+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:42+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -204,11 +204,11 @@ msgstr "Impossible de mettre à jour votre conception." msgid "You cannot block yourself!" msgstr "Vous ne pouvez pas vous bloquer vous-même !" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Le blocage de l’utilisateur a échoué." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Le déblocage de l’utilisateur a échoué." @@ -322,7 +322,7 @@ msgid "Could not find target user." msgstr "Impossible de trouver l’utilisateur cible." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -330,25 +330,25 @@ msgstr "" "chiffres, sans espaces." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Pseudo déjà utilisé. Essayez-en un autre." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Pseudo invalide." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "L’adresse du site personnel n’est pas un URL valide. " #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nom complet trop long (maximum de 255 caractères)." @@ -359,7 +359,7 @@ msgid "Description is too long (max %d chars)." msgstr "La description est trop longue (%d caractères maximum)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Emplacement trop long (maximum de 255 caractères)." @@ -474,7 +474,7 @@ msgstr "C’est trop long ! La taille maximale de l’avis est de %d caractères msgid "Not found" msgstr "Non trouvé" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -620,13 +620,13 @@ msgid "Crop" msgstr "Recadrer" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -701,7 +701,7 @@ msgstr "Oui" msgid "Block this user" msgstr "Bloquer cet utilisateur" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Impossible d’enregistrer les informations de blocage." @@ -773,7 +773,7 @@ msgstr "Cette adresse a déjà été confirmée." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Impossible de mettre à jour l’utilisateur." @@ -975,7 +975,7 @@ msgstr "Revenir aux valeurs par défaut" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1477,7 +1477,7 @@ msgstr "Membres du groupe %s - page %d" msgid "A list of the users in this group." msgstr "Liste des utilisateurs inscrits à ce groupe." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administrer" @@ -1577,7 +1577,7 @@ msgstr "Seul un administrateur peut débloquer les membres du groupes." msgid "User is not blocked from group." msgstr "Cet utilisateur n’est pas bloqué du groupe." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Erreur lors de l’annulation du blocage." @@ -1894,7 +1894,7 @@ msgstr "" "Erreur lors de la mise en place de l'utilisateur. Vous n'y êtes probablement " "pas autorisé." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Ouvrir une session" @@ -2012,7 +2012,7 @@ msgstr "Message envoyé" msgid "Direct message to %s sent" msgstr "Votre message a été envoyé à %s" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Erreur Ajax" @@ -2020,7 +2020,7 @@ msgstr "Erreur Ajax" msgid "New notice" msgstr "Nouvel avis" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Avis publié" @@ -2454,73 +2454,82 @@ msgstr "Emplacement" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Indiquez votre emplacement, ex.: « Ville, État (ou région), Pays »" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Marques" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Marques pour vous-même (lettres, chiffres, -, ., et _), séparées par des " "virgules ou des espaces" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Langue" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Langue préférée" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Fuseau horaire" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Quel est votre fuseau horaire habituel ?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "M’abonner automatiquement à tous ceux qui s’abonnent à moi (recommandé pour " "les utilisateurs non-humains)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "La bio est trop longue (%d caractères maximum)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Aucun fuseau horaire n’a été choisi." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "La langue est trop longue (255 caractères maximum)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Marque invalide : « %s »" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Impossible de mettre à jour l’auto-abonnement." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Impossible d’enregistrer les marques." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Impossible d’enregistrer le profil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Impossible d’enregistrer les marques." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Préférences enregistrées." @@ -2771,7 +2780,7 @@ msgstr "Désolé, code d’invitation invalide." msgid "Registration successful" msgstr "Compte créé avec succès" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Créer un compte" @@ -4126,16 +4135,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Il vous est interdit de poster des avis sur ce site." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problème lors de l’enregistrement de l’avis." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Erreur de base de donnée en insérant la réponse :%s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4190,128 +4199,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Page sans nom" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Navigation primaire du site" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Accueil" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Profil personnel et flux des amis" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Compte" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Modifier votre courriel, avatar, mot de passe, profil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Connecter" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Se connecter aux services" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Modifier la configuration du site" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Inviter" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter des amis et collègues à vous rejoindre dans %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Fermeture de session" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Fermer la session" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Créer un compte" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Ouvrir une session" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Aide" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "À l’aide !" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Rechercher" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Rechercher des personnes ou du texte" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Notice du site" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Vues locales" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Avis de la page" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Navigation secondaire du site" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "À propos" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "CGU" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Confidentialité" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Source" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contact" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Insigne" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Licence du logiciel StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4320,12 +4329,12 @@ msgstr "" "**%%site.name%%** est un service de microblogging qui vous est proposé par " "[%%site.broughtby%%](%%site.broughtbyurl%%)." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** est un service de micro-blogging." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4336,31 +4345,31 @@ msgstr "" "version %s, disponible sous la licence [GNU Affero General Public License] " "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licence du contenu du site" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Tous " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licence." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Pagination" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Après" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Avant" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Un problème est survenu avec votre jeton de session." @@ -5304,6 +5313,14 @@ msgstr "Attacher" msgid "Attach a file" msgstr "Attacher un fichier" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 8da467cea..2f2ebe62c 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:24+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:45+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -195,11 +195,11 @@ msgstr "Non se puido actualizar o usuario." msgid "You cannot block yourself!" msgstr "Non se puido actualizar o usuario." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Bloqueo de usuario fallido." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Desbloqueo de usuario fallido." @@ -320,31 +320,31 @@ msgid "Could not find target user." msgstr "Non se puido atopar ningún estado" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "O alcume debe ter só letras minúsculas e números, e sen espazos." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "O alcume xa está sendo empregado por outro usuario. Tenta con outro." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Non é un alcume válido." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "A páxina persoal semella que non é unha URL válida." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "O nome completo é demasiado longo (max 255 car)." @@ -355,7 +355,7 @@ msgid "Description is too long (max %d chars)." msgstr "O teu Bio é demasiado longo (max 140 car.)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "A localización é demasiado longa (max 255 car.)." @@ -475,7 +475,7 @@ msgstr "" msgid "Not found" msgstr "Non atopado" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -621,13 +621,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -704,7 +704,7 @@ msgstr "Si" msgid "Block this user" msgstr "Bloquear usuario" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Erro ao gardar información de bloqueo." @@ -781,7 +781,7 @@ msgstr "Esa dirección xa foi confirmada." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Non se puido actualizar o usuario." @@ -995,7 +995,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1512,7 +1512,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1605,7 +1605,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "O usuario bloqueoute." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Acounteceu un erro borrando o bloqueo." @@ -1916,7 +1916,7 @@ msgstr "Usuario ou contrasinal incorrectos." msgid "Error setting user. You are probably not authorized." msgstr "Non está autorizado." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Inicio de sesión" @@ -2031,7 +2031,7 @@ msgstr "Non hai mensaxes de texto!" msgid "Direct message to %s sent" msgstr "Mensaxe directo a %s enviado" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Erro de Ajax" @@ -2039,7 +2039,7 @@ msgstr "Erro de Ajax" msgid "New notice" msgstr "Novo chío" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Chío publicado" @@ -2482,73 +2482,82 @@ msgstr "Localización" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "¿Onde estas, coma \"Cidade, Provincia, País\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Etiquetas para o teu usuario (letras, números, -, ., e _), separados por " "coma ou espazo" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Linguaxe" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Linguaxe preferida" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Fuso Horario" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "En que fuso horario estas normalmente?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Suscribirse automáticamente a calquera que se suscriba a min (o mellor para " "non humáns)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "O teu Bio é demasiado longo (max 140 car.)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Fuso Horario non seleccionado" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "A Linguaxe é demasiado longa (max 50 car.)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta inválida: '%s'" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Non se puido actualizar o usuario para autosuscrición." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Non se puideron gardar as etiquetas." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Non se puido gardar o perfil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Non se puideron gardar as etiquetas." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Configuracións gardadas." @@ -2792,7 +2801,7 @@ msgstr "Acounteceu un erro co código de confirmación." msgid "Registration successful" msgstr "Xa estas rexistrado!!" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Rexistrar" @@ -4154,16 +4163,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Tes restrinxido o envio de chíos neste sitio." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Aconteceu un erro ó gardar o chío." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Erro ó inserir a contestación na BD: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4222,139 +4231,139 @@ msgstr "%s (%s)" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Persoal" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "Sobre" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Change your email, avatar, password, profile" msgstr "Cambiar contrasinal" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Conectar" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Non se pode redireccionar ao servidor: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Navegación de subscricións" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Invitar" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, fuzzy, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" "Emprega este formulario para invitar ós teus amigos e colegas a empregar " "este servizo." -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Sair" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "Crear nova conta" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Axuda" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "Axuda" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Buscar" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Novo chío" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Novo chío" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Navegación de subscricións" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Sobre" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Preguntas frecuentes" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Fonte" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contacto" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4363,12 +4372,12 @@ msgstr "" "**%%site.name%%** é un servizo de microbloguexo que che proporciona [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é un servizo de microbloguexo." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4379,35 +4388,35 @@ msgstr "" "%s, dispoñible baixo licenza [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Atopar no contido dos chíos" -#: lib/action.php:799 +#: lib/action.php:800 #, fuzzy msgid "All " msgstr "Todos" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "« Despois" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "Antes »" -#: lib/action.php:1163 +#: lib/action.php:1164 #, fuzzy msgid "There was a problem with your session token." msgstr "Houbo un problema co teu token de sesión. Tentao de novo, anda..." @@ -5343,6 +5352,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index c0d4ecf51..0522937d9 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:27+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:49+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -192,11 +192,11 @@ msgstr "עידכון המשתמש נכשל." msgid "You cannot block yourself!" msgstr "עידכון המשתמש נכשל." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -311,31 +311,31 @@ msgid "Could not find target user." msgstr "עידכון המשתמש נכשל." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "כינוי יכול להכיל רק אותיות אנגליות קטנות ומספרים, וללא רווחים." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "כינוי זה כבר תפוס. נסה כינוי אחר." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "שם משתמש לא חוקי." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "לאתר הבית יש כתובת לא חוקית." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "השם המלא ארוך מידי (מותרות 255 אותיות בלבד)" @@ -346,7 +346,7 @@ msgid "Description is too long (max %d chars)." msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "שם המיקום ארוך מידי (מותר עד 255 אותיות)." @@ -467,7 +467,7 @@ msgstr "זה ארוך מידי. אורך מירבי להודעה הוא 140 או msgid "Not found" msgstr "לא נמצא" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -614,13 +614,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -695,7 +695,7 @@ msgstr "כן" msgid "Block this user" msgstr "אין משתמש כזה." -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -771,7 +771,7 @@ msgstr "כתובת זו כבר אושרה." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "עידכון המשתמש נכשל." @@ -980,7 +980,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1488,7 +1488,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1581,7 +1581,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "למשתמש אין פרופיל." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "שגיאה בשמירת המשתמש." @@ -1860,7 +1860,7 @@ msgstr "שם משתמש או סיסמה לא נכונים." msgid "Error setting user. You are probably not authorized." msgstr "לא מורשה." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "היכנס" @@ -1970,7 +1970,7 @@ msgstr "הודעה חדשה" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1978,7 +1978,7 @@ msgstr "" msgid "New notice" msgstr "הודעה חדשה" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "הודעות" @@ -2417,70 +2417,79 @@ msgstr "מיקום" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "מיקומך, למשל \"עיר, מדינה או מחוז, ארץ\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "שפה" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "הביוגרפיה ארוכה מידי (לכל היותר 140 אותיות)" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "כתובת אתר הבית '%s' אינה חוקית" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "שמירת הפרופיל נכשלה." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "שמירת הפרופיל נכשלה." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "שמירת הפרופיל נכשלה." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "ההגדרות נשמרו." @@ -2714,7 +2723,7 @@ msgstr "שגיאה באישור הקוד." msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "הירשם" @@ -4010,16 +4019,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "בעיה בשמירת ההודעה." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "שגיאת מסד נתונים בהכנסת התגובה: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4078,136 +4087,136 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "בית" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "אודות" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "התחבר" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "נכשלה ההפניה לשרת: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "הרשמות" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "צא" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "צור חשבון חדש" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "עזרה" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "עזרה" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "חיפוש" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "הודעה חדשה" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "הודעה חדשה" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "הרשמות" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "אודות" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "רשימת שאלות נפוצות" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "פרטיות" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "מקור" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "צור קשר" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4216,12 +4225,12 @@ msgstr "" "**%%site.name%%** הוא שרות ביקרובלוג הניתן על ידי [%%site.broughtby%%](%%" "site.broughtbyurl%%)." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** הוא שרות ביקרובלוג." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4232,34 +4241,34 @@ msgstr "" "s, המופצת תחת רשיון [GNU Affero General Public License](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)" -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "הודעה חדשה" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "<< אחרי" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "לפני >>" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5087,6 +5096,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index ae5b19651..515d49607 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:30+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:52+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -188,11 +188,11 @@ msgstr "Design njeda so aktualizować." msgid "You cannot block yourself!" msgstr "Njemóžeš so samoho blokować." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -304,31 +304,31 @@ msgid "Could not find target user." msgstr "" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Přimjeno so hižo wužiwa. Spytaj druhe." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Žane płaćiwe přimjeno." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Startowa strona njeje płaćiwy URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Dospołne mjeno je předołho (maks. 255 znamješkow)." @@ -339,7 +339,7 @@ msgid "Description is too long (max %d chars)." msgstr "Wopisanje je předołho (maks. %d znamješkow)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Městno je předołho (maks. 255 znamješkow)." @@ -454,7 +454,7 @@ msgstr "To je předołho. Maksimalna wulkosć zdźělenki je %d znamješkow." msgid "Not found" msgstr "Njenamakany" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -597,13 +597,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -673,7 +673,7 @@ msgstr "Haj" msgid "Block this user" msgstr "Tutoho wužiwarja blokować" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -745,7 +745,7 @@ msgstr "Tuta adresa bu hižo wobkrućena." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "" @@ -940,7 +940,7 @@ msgstr "Na standard wróćo stajić" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1424,7 +1424,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "Lisćina wužiwarjow w tutej skupinje." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" @@ -1511,7 +1511,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "" @@ -1778,7 +1778,7 @@ msgstr "Wopačne wužiwarske mjeno abo hesło." msgid "Error setting user. You are probably not authorized." msgstr "Zmylk při nastajenju wužiwarja. Snano njejsy awtorizowany." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Přizjewić" @@ -1885,7 +1885,7 @@ msgstr "Powěsć pósłana" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Zmylk Ajax" @@ -1893,7 +1893,7 @@ msgstr "Zmylk Ajax" msgid "New notice" msgstr "Nowa zdźělenka" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Zdźělenka wotpósłana" @@ -2310,69 +2310,78 @@ msgstr "Městno" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Rěč" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Preferowana rěč" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Časowe pasmo" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Biografija je předołha (maks. %d znamješkow)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Časowe pasmo njeje wubrane." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Mjeno rěče je předołhe (maks. 50 znamješkow)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Profil njeje so składować dał." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "" -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "" -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Nastajenja składowane." @@ -2602,7 +2611,7 @@ msgstr "Wodaj, njepłaćiwy přeprošenski kod." msgid "Registration successful" msgstr "Registrowanje wuspěšne" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrować" @@ -3836,16 +3845,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -3900,140 +3909,140 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Strona bjez titula" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Konto" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Zwjazać" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Přeprosyć" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Konto załožić" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Pomoc" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Pomhaj!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Pytać" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Za ludźimi abo tekstom pytać" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Wo" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Huste prašenja" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Priwatnosć" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Žórło" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4041,31 +4050,31 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -4870,6 +4879,14 @@ msgstr "Připowěsnyć" msgid "Attach a file" msgstr "Dataju připowěsnyć" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 9f64bd619..f06e4ac48 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:33+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:55+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -198,11 +198,11 @@ msgstr "Non poteva actualisar le apparentia." msgid "You cannot block yourself!" msgstr "Tu non pote blocar te mesme!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Le blocada del usator ha fallite." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Le disblocada del usator ha fallite." @@ -314,31 +314,31 @@ msgid "Could not find target user." msgstr "Non poteva trovar le usator de destination." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Le pseudonymo pote solmente haber minusculas e numeros, sin spatios." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Pseudonymo ja in uso. Proba un altere." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Non un pseudonymo valide." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Le pagina personal non es un URL valide." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Le nomine complete es troppo longe (max. 255 characteres)." @@ -349,7 +349,7 @@ msgid "Description is too long (max %d chars)." msgstr "Description es troppo longe (max %d charachteres)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Loco es troppo longe (max. 255 characteres)." @@ -465,7 +465,7 @@ msgstr "" msgid "Not found" msgstr "Non trovate" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -610,13 +610,13 @@ msgid "Crop" msgstr "Taliar" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -689,7 +689,7 @@ msgstr "Si" msgid "Block this user" msgstr "Blocar iste usator" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Falleva de salveguardar le information del blocada." @@ -761,7 +761,7 @@ msgstr "Iste adresse ha ja essite confirmate." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Non poteva actualisar usator." @@ -961,7 +961,7 @@ msgstr "Revenir al predefinitiones" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1461,7 +1461,7 @@ msgstr "Membros del gruppo %s, pagina %d" msgid "A list of the users in this group." msgstr "Un lista de usatores in iste gruppo." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" @@ -1559,7 +1559,7 @@ msgstr "Solmente un administrator pote disblocar membros de un gruppo." msgid "User is not blocked from group." msgstr "Le usator non es blocate del gruppo." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Error de remover le blocada." @@ -1869,7 +1869,7 @@ msgid "Error setting user. You are probably not authorized." msgstr "" "Error de acceder al conto de usator. Tu probabilemente non es autorisate." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Aperir session" @@ -1984,7 +1984,7 @@ msgstr "Message inviate" msgid "Direct message to %s sent" msgstr "Message directe a %s inviate" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Error de Ajax" @@ -1992,7 +1992,7 @@ msgstr "Error de Ajax" msgid "New notice" msgstr "Nove nota" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Nota publicate" @@ -2424,72 +2424,81 @@ msgstr "Loco" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Ubi tu es, como \"Citate, Stato (o Region), Pais\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Etiquettas" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Etiquettas pro te (litteras, numeros, -, ., e _), separate per commas o " "spatios" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Lingua" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Lingua preferite" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Fuso horari" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "In que fuso horari es tu normalmente?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Subscriber me automaticamente a qui se subscribe a me (utile pro non-humanos)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Bio es troppo longe (max %d chars)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Fuso horari non seligite." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Lingua es troppo longe (max 50 chars)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiquetta invalide: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Non poteva actualisar usator pro autosubscription." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Non poteva salveguardar etiquettas." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Non poteva salveguardar profilo." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Non poteva salveguardar etiquettas." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Preferentias confirmate." @@ -2735,7 +2744,7 @@ msgstr "Pardono, le codice de invitation es invalide." msgid "Registration successful" msgstr "Registration succedite" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Crear un conto" @@ -4032,16 +4041,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4096,140 +4105,140 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4237,31 +4246,31 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5058,6 +5067,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index d085a47c8..b90feacaf 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:35+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:06:58+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -194,11 +194,11 @@ msgstr "Gat ekki uppfært hóp." msgid "You cannot block yourself!" msgstr "Gat ekki uppfært notanda." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Mistókst að loka á notanda." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Mistókst að opna fyrir notanda." @@ -312,31 +312,31 @@ msgid "Could not find target user." msgstr "" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Stuttnefni geta bara verið lágstafir og tölustafir en engin bil." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Stuttnefni nú þegar í notkun. Prófaðu eitthvað annað." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ekki tækt stuttnefni." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Heimasíða er ekki gild vefslóð." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Fullt nafn er of langt (í mesta lagi 255 stafir)." @@ -347,7 +347,7 @@ msgid "Description is too long (max %d chars)." msgstr "Lýsing er of löng (í mesta lagi 140 tákn)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Staðsetning er of löng (í mesta lagi 255 stafir)." @@ -467,7 +467,7 @@ msgstr "Þetta er of langt. Hámarkslengd babls er 140 tákn." msgid "Not found" msgstr "Fannst ekki" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -610,13 +610,13 @@ msgid "Crop" msgstr "Skera af" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -689,7 +689,7 @@ msgstr "Já" msgid "Block this user" msgstr "Loka á þennan notanda" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Mistókst að vista upplýsingar um notendalokun" @@ -762,7 +762,7 @@ msgstr "Þetta tölvupóstfang hefur nú þegar verið staðfest." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Gat ekki uppfært notanda." @@ -967,7 +967,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1463,7 +1463,7 @@ msgstr "Hópmeðlimir %s, síða %d" msgid "A list of the users in this group." msgstr "Listi yfir notendur í þessum hóp." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Stjórnandi" @@ -1550,7 +1550,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Vill kom upp við að aflétta notendalokun." @@ -1862,7 +1862,7 @@ msgstr "Rangt notendanafn eða lykilorð." msgid "Error setting user. You are probably not authorized." msgstr "Engin heimild." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Innskráning" @@ -1978,7 +1978,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "Bein skilaboð send til %s" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax villa" @@ -1986,7 +1986,7 @@ msgstr "Ajax villa" msgid "New notice" msgstr "Nýtt babl" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Babl sent inn" @@ -2425,73 +2425,82 @@ msgstr "Staðsetning" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Staðsetning þín, eins og \"borg, sýsla, land\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Merki" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Merki fyrir þig (bókstafir, tölustafir, -, ., og _), aðskilin með kommu eða " "bili" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Tungumál" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Tungumál (ákjósanlegt)" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Tímabelti" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Í hvaða tímabelti eru í rauninni?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Gerast sjálfkrafa áskrifandi að hverjum þeim sem gerist áskrifandi að þér " "(best fyrir ómannlega notendur)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Lýsingin er of löng (í mesta lagi 140 tákn)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Tímabelti ekki valið." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Tungumál er of langt (í mesta lagi 50 stafir)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ógilt merki: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Gat ekki uppfært notanda í sjálfvirka áskrift." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Gat ekki vistað merki." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Gat ekki vistað persónulega síðu." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Gat ekki vistað merki." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Stillingar vistaðar." @@ -2724,7 +2733,7 @@ msgstr "" msgid "Registration successful" msgstr "Nýskráning tókst" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Nýskrá" @@ -4042,16 +4051,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Það hefur verið lagt bann við babli frá þér á þessari síðu." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Vandamál komu upp við að vista babl." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Gagnagrunnsvilla við innsetningu svars: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4106,132 +4115,132 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Ónafngreind síða" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Stikl aðalsíðu" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Heim" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Persónuleg síða og vinarás" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Aðgangur" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" "Breyttu tölvupóstinum þínum, einkennismyndinni þinni, lykilorðinu þínu, " "persónulegu síðunni þinni" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Tengjast" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Gat ekki framsent til vefþjóns: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Stikl aðalsíðu" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Bjóða" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Bjóða vinum og vandamönnum að slást í hópinn á %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Útskráning" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Skrá þig út af síðunni" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Búa til aðgang" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Skrá þig inn á síðuna" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Hjálp" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Hjálp!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Leita" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Leita að fólki eða texta" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Babl vefsíðunnar" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Staðbundin sýn" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Babl síðunnar" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Stikl undirsíðu" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Um" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Spurt og svarað" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Friðhelgi" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Frumþula" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Tengiliður" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4240,12 +4249,12 @@ msgstr "" "**%%site.name%%** er örbloggsþjónusta í boði [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er örbloggsþjónusta." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4256,32 +4265,32 @@ msgstr "" "sem er gefinn út undir [GNU Affero almenningsleyfinu](http://www.fsf.org/" "licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Hugbúnaðarleyfi StatusNet" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Allt " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "leyfi." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Uppröðun" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Eftir" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Áður" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Það komu upp vandamál varðandi setutókann þinn." @@ -5109,6 +5118,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 29aab4755..d7c2fcd98 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:38+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:01+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -199,11 +199,11 @@ msgstr "Impossibile aggiornare l'aspetto." msgid "You cannot block yourself!" msgstr "Non puoi bloccarti!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blocco dell'utente non riuscito." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Sblocco dell'utente non riuscito." @@ -315,7 +315,7 @@ msgid "Could not find target user." msgstr "Impossibile trovare l'utente destinazione." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -323,25 +323,25 @@ msgstr "" "spazi." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Soprannome già in uso. Prova con un altro." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Non è un soprannome valido." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "L'indirizzo della pagina web non è valido." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nome troppo lungo (max 255 caratteri)." @@ -352,7 +352,7 @@ msgid "Description is too long (max %d chars)." msgstr "La descrizione è troppo lunga (max %d caratteri)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Ubicazione troppo lunga (max 255 caratteri)." @@ -467,7 +467,7 @@ msgstr "Troppo lungo. Lunghezza massima %d caratteri." msgid "Not found" msgstr "Non trovato" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -611,13 +611,13 @@ msgid "Crop" msgstr "Ritaglia" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -691,7 +691,7 @@ msgstr "Sì" msgid "Block this user" msgstr "Blocca questo utente" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Salvataggio delle informazioni per il blocco non riuscito." @@ -763,7 +763,7 @@ msgstr "Quell'indirizzo è già stato confermato." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Impossibile aggiornare l'utente." @@ -964,7 +964,7 @@ msgstr "Reimposta i valori predefiniti" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1467,7 +1467,7 @@ msgstr "Membri del gruppo %s, pagina %d" msgid "A list of the users in this group." msgstr "Un elenco degli utenti in questo gruppo." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Amministra" @@ -1565,7 +1565,7 @@ msgstr "Solo gli amministratori possono sbloccare i membri del gruppo." msgid "User is not blocked from group." msgstr "L'utente non è bloccato dal gruppo." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Errore nel rimuovere il blocco." @@ -1873,7 +1873,7 @@ msgstr "Nome utente o password non corretto." msgid "Error setting user. You are probably not authorized." msgstr "Errore nell'impostare l'utente. Forse non hai l'autorizzazione." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Accedi" @@ -1985,7 +1985,7 @@ msgstr "Messaggio inviato" msgid "Direct message to %s sent" msgstr "Messaggio diretto a %s inviato" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Errore di Ajax" @@ -1993,7 +1993,7 @@ msgstr "Errore di Ajax" msgid "New notice" msgstr "Nuovo messaggio" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Messaggio inviato" @@ -2427,72 +2427,81 @@ msgstr "Ubicazione" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Dove ti trovi, tipo \"città, regione, stato\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Etichette" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Le tue etichette (lettere, numeri, -, . e _), separate da virgole o spazi" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Lingua" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Lingua preferita" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Fuso orario" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "In che fuso orario risiedi solitamente?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Abbonami automaticamente a chi si abbona ai miei messaggi (utile per i non-" "umani)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "La biografia è troppo lunga (max %d caratteri)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Fuso orario non selezionato" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "La lingua è troppo lunga (max 50 caratteri)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etichetta non valida: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Impossibile aggiornare l'utente per auto-abbonarsi." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Impossibile salvare le etichette." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Impossibile salvare il profilo." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Impossibile salvare le etichette." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Impostazioni salvate." @@ -2736,7 +2745,7 @@ msgstr "Codice di invito non valido." msgid "Registration successful" msgstr "Registrazione riuscita" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registra" @@ -4079,16 +4088,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Ti è proibito inviare messaggi su questo sito." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problema nel salvare il messaggio." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Errore del DB nell'inserire la risposta: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4143,128 +4152,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Pagina senza nome" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Esplorazione sito primaria" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Home" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Profilo personale e attività degli amici" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Account" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Modifica la tua email, immagine, password o il tuo profilo" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Connetti" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Connettiti con altri servizi" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Modifica la configurazione del sito" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Invita" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Invita amici e colleghi a seguirti su %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Esci" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Termina la tua sessione sul sito" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Crea un account" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Accedi al sito" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Aiuto" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Aiutami!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Cerca" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Cerca persone o del testo" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Messaggio del sito" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Viste locali" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Pagina messaggio" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Esplorazione secondaria del sito" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Informazioni" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "TOS" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Sorgenti" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contatti" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Badge" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Licenza del software StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4273,12 +4282,12 @@ msgstr "" "**%%site.name%%** è un servizio di microblog offerto da [%%site.broughtby%%]" "(%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** è un servizio di microblog. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4289,31 +4298,31 @@ msgstr "" "s, disponibile nei termini della licenza [GNU Affero General Public License]" "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licenza del contenuto del sito" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Tutti " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licenza." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginazione" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Successivi" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Precedenti" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Si è verificato un problema con il tuo token di sessione." @@ -5250,6 +5259,14 @@ msgstr "Allega" msgid "Attach a file" msgstr "Allega un file" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 9fb5918e7..e8d2e9e0e 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:42+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:04+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -199,11 +199,11 @@ msgstr "デザインを更新できませんでした。" msgid "You cannot block yourself!" msgstr "自分自身をブロックすることはできません!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "利用者のブロックに失敗しました。" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "利用者のブロック解除に失敗しました。" @@ -316,7 +316,7 @@ msgid "Could not find target user." msgstr "ターゲットユーザーを見つけられません。" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -324,25 +324,25 @@ msgstr "" "できません。" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "そのニックネームは既に使用されています。他のものを試してみて下さい。" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "有効なニックネームではありません。" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "ホームページのURLが不適切です。" #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "フルネームが長すぎます。(255字まで)" @@ -353,7 +353,7 @@ msgid "Description is too long (max %d chars)." msgstr "記述が長すぎます。(最長140字)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "場所が長すぎます。(255字まで)" @@ -468,7 +468,7 @@ msgstr "長すぎます。つぶやきは最大 140 字までです。" msgid "Not found" msgstr "みつかりません" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "つぶやきは URL を含めて最大 %d 字までです。" @@ -507,7 +507,7 @@ msgstr "%1$s / %2$s について更新" #: actions/apitimelinementions.php:127 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "" +msgstr "%2$s からアップデートに答える %1$s アップデート" #: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format @@ -517,12 +517,12 @@ msgstr "%s のパブリックタイムライン" #: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" -msgstr "" +msgstr "皆からの %s アップデート!" #: actions/apitimelineretweetedbyme.php:112 #, php-format msgid "Repeated by %s" -msgstr "" +msgstr "%s による繰り返し" #: actions/apitimelineretweetedtome.php:111 #, php-format @@ -537,7 +537,7 @@ msgstr "%s の返信" #: actions/apitimelinetag.php:102 actions/tag.php:66 #, php-format msgid "Notices tagged with %s" -msgstr "" +msgstr "%s とタグ付けされたつぶやき" #: actions/apitimelinetag.php:108 actions/tagrss.php:64 #, php-format @@ -579,7 +579,7 @@ msgstr "自分のアバターをアップロードできます。最大サイズ #: actions/grouplogo.php:178 actions/remotesubscribe.php:191 #: actions/userauthorization.php:72 actions/userrss.php:103 msgid "User without matching profile" -msgstr "" +msgstr "合っているプロフィールのない利用者" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 #: actions/grouplogo.php:251 @@ -610,13 +610,13 @@ msgid "Crop" msgstr "切り取り" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -686,7 +686,7 @@ msgstr "" msgid "Block this user" msgstr "このユーザをブロックする" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "ブロック情報の保存に失敗しました。" @@ -758,7 +758,7 @@ msgstr "そのアドレスは既に承認されています。" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "ユーザを更新できません" @@ -954,7 +954,7 @@ msgstr "デフォルトへリセットする" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1453,7 +1453,7 @@ msgstr "%s グループメンバー、ページ %d" msgid "A list of the users in this group." msgstr "このグループの利用者のリスト。" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "管理者" @@ -1517,9 +1517,8 @@ msgstr "グループの検索" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." -msgstr "結果なし" +msgstr "結果なし。" #: actions/groupsearch.php:82 #, php-format @@ -1547,7 +1546,7 @@ msgstr "管理者だけがグループメンバーをアンブロックできま msgid "User is not blocked from group." msgstr "利用者はグループからブロックされていません。" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "ブロックの削除エラー" @@ -1798,71 +1797,68 @@ msgstr "" #: actions/joingroup.php:60 msgid "You must be logged in to join a group." -msgstr "" +msgstr "グループに入るためにはログインしなければなりません。" #: actions/joingroup.php:90 lib/command.php:217 msgid "You are already a member of that group" msgstr "あなたは既にそのグループに参加しています。" #: actions/joingroup.php:128 lib/command.php:234 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "サーバへリダイレクトできません : %s" +msgstr "利用者 %s はグループ %s に参加できません" #: actions/joingroup.php:135 lib/command.php:239 #, php-format msgid "%s joined group %s" -msgstr "" +msgstr "%s はグループ %s に参加しました" #: actions/leavegroup.php:60 msgid "You must be logged in to leave a group." -msgstr "" +msgstr "グループから離れるにはログインしていなければなりません。" #: actions/leavegroup.php:90 lib/command.php:268 -#, fuzzy msgid "You are not a member of that group." -msgstr "そのプロファイルは送信されていません。" +msgstr "あなたはそのグループのメンバーではありません。" #: actions/leavegroup.php:119 lib/command.php:278 msgid "Could not find membership record." -msgstr "" +msgstr "会員資格記録を見つけることができませんでした。" #: actions/leavegroup.php:127 lib/command.php:284 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "OpenIDを作成できません : %s" +msgstr "利用者 %s をグループ %s から削除することができません" #: actions/leavegroup.php:134 lib/command.php:289 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s はグループ %s に残りました。" #: actions/login.php:83 actions/register.php:137 msgid "Already logged in." msgstr "既にログインしています。" #: actions/login.php:114 actions/login.php:124 -#, fuzzy msgid "Invalid or expired token." -msgstr "不正な通知内容" +msgstr "不正または期限切れのトークン" #: actions/login.php:147 msgid "Incorrect username or password." msgstr "ユーザ名またはパスワードが間違っています。" #: actions/login.php:153 -#, fuzzy msgid "Error setting user. You are probably not authorized." -msgstr "認証されていません。" +msgstr "ユーザ設定エラー。 あなたはたぶん承認されていません。" -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "ログイン" #: actions/login.php:247 msgid "Login to site" -msgstr "" +msgstr "サイトへログイン" #: actions/login.php:250 actions/profilesettings.php:106 #: actions/register.php:423 actions/showgroup.php:236 actions/tagother.php:94 @@ -1901,45 +1897,47 @@ msgid "" "Login with your username and password. Don't have a username yet? [Register]" "(%%action.register%%) a new account." msgstr "" +"ユーザ名とパスワードで、ログインしてください。 まだユーザ名を持っていません" +"か? 新しいアカウントを [登録](%%action.register%%)。" #: actions/makeadmin.php:91 msgid "Only an admin can make another user an admin." -msgstr "" +msgstr "管理者だけが別のユーザを管理者にすることができます。" #: actions/makeadmin.php:95 #, php-format msgid "%s is already an admin for group \"%s\"." -msgstr "" +msgstr "%s はすでにグループ \"%s\" の管理者です。" #: actions/makeadmin.php:132 #, php-format msgid "Can't get membership record for %s in group %s" -msgstr "" +msgstr "%s の会員資格記録をグループ %s 中から取得できません。" #: actions/makeadmin.php:145 #, php-format msgid "Can't make %s an admin for group %s" -msgstr "" +msgstr "%s をグループ %s の管理者にすることはできません" #: actions/microsummary.php:69 msgid "No current status" -msgstr "" +msgstr "現在のステータスはありません" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "新しいグループ" #: actions/newgroup.php:110 msgid "Use this form to create a new group." -msgstr "" +msgstr "このフォームを使って新しいグループを作成します。" #: actions/newmessage.php:71 actions/newmessage.php:231 msgid "New message" -msgstr "" +msgstr "新しいメッセージ" #: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:367 msgid "You can't send a message to this user." -msgstr "" +msgstr "この利用者にメッセージを送ることはできません。" #: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:351 #: lib/command.php:484 @@ -1948,31 +1946,32 @@ msgstr "コンテンツがありません!" #: actions/newmessage.php:158 msgid "No recipient specified." -msgstr "" +msgstr "受取人が書かれていません。" #: actions/newmessage.php:164 lib/command.php:370 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" +"自分自身にメッセージを送ることはできません; かわりに独り言を言いましょう。" #: actions/newmessage.php:181 msgid "Message sent" -msgstr "" +msgstr "メッセージを送りました" #: actions/newmessage.php:185 lib/command.php:376 #, php-format msgid "Direct message to %s sent" -msgstr "" +msgstr "ダイレクトメッセージを %s に送りました" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" -msgstr "" +msgstr "Ajax エラー" #: actions/newnotice.php:69 msgid "New notice" msgstr "新しいつぶやき" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "つぶやきを投稿しました" @@ -1981,16 +1980,17 @@ msgstr "つぶやきを投稿しました" msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." -msgstr "%%site.name%% の通知を内容から検索。検索語はスペース区切る。3字以上" +msgstr "" +"%%site.name%% のつぶやきを内容から検索。検索語はスペース区切り。3字以上" #: actions/noticesearch.php:78 msgid "Text search" -msgstr "文字検索" +msgstr "テキスト検索" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%s\" on %s" -msgstr "\"%s\" のストリームを検索" +msgstr "%s の %s 上の検索結果" #: actions/noticesearch.php:121 #, php-format @@ -1998,6 +1998,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"最初の [このトピック投稿](%%%%action.newnotice%%%%?status_textarea=%s) をして" +"ください!" #: actions/noticesearch.php:124 #, php-format @@ -2005,29 +2007,33 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"なぜ [アカウント登録](%%%%action.register%%%%) しないのですか、そして最初の" +"[このトピック投稿](%%%%action.newnotice%%%%?status_textarea=%s)してください!" #: actions/noticesearchrss.php:96 -#, fuzzy, php-format +#, php-format msgid "Updates with \"%s\"" -msgstr "マイクロブログ by %s" +msgstr "%s で更新" #: actions/noticesearchrss.php:98 #, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "検索語「%s」に一致するすべての更新" +msgstr "\"%2$s\" 上の検索語 \"$1$s\" に一致するすべての更新" #: actions/nudge.php:85 msgid "" "This user doesn't allow nudges or hasn't confirmed or set his email yet." msgstr "" +"この利用者は、合図を許可していないか、確認されていた状態でないか、メール設定" +"をしていません。" #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "" +msgstr "合図を送った" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "" +msgstr "合図を送った!" #: actions/oembed.php:79 actions/shownotice.php:100 msgid "Notice has no profile" @@ -2036,7 +2042,7 @@ msgstr "つぶやきにはプロファイルはありません。" #: actions/oembed.php:86 actions/shownotice.php:180 #, php-format msgid "%1$s's status on %2$s" -msgstr "%2$s における %1$ の状態" +msgstr "%2$s における %1$ のステータス" #: actions/oembed.php:157 msgid "content type " @@ -2044,12 +2050,12 @@ msgstr "内容種別 " #: actions/oembed.php:160 msgid "Only " -msgstr "" +msgstr "だけ " #: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1031 #: lib/api.php:1059 lib/api.php:1169 msgid "Not a supported data format." -msgstr "" +msgstr "サポートされていないデータ形式。" #: actions/opensearch.php:64 msgid "People Search" @@ -2060,53 +2066,52 @@ msgid "Notice Search" msgstr "つぶやき検索" #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "設定" +msgstr "その他の設定" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "" +msgstr "他のオプションを管理。" #: actions/othersettings.php:108 msgid " (free service)" -msgstr "" +msgstr "(フリーサービス)" #: actions/othersettings.php:116 msgid "Shorten URLs with" -msgstr "" +msgstr "URLを短くします" #: actions/othersettings.php:117 msgid "Automatic shortening service to use." -msgstr "" +msgstr "使用する自動短縮サービス。" #: actions/othersettings.php:122 -#, fuzzy msgid "View profile designs" -msgstr "プロファイル設定" +msgstr "プロファイルデザインを表示" #: actions/othersettings.php:123 msgid "Show or hide profile designs." -msgstr "" +msgstr "プロファイルデザインの表示または非表示" #: actions/othersettings.php:153 -#, fuzzy msgid "URL shortening service is too long (max 50 chars)." -msgstr "場所が長すぎます。(255字まで)" +msgstr "URL 短縮サービスが長すぎます。(最大50字)" #: actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "" +msgstr "%s の送信箱 - ページ %d" #: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "" +msgstr "%s の送信箱" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." msgstr "" +"これはあなたの送信箱です、あなたが送ったプライベート・メッセージをリストしま" +"す。" #: actions/passwordsettings.php:58 msgid "Change password" @@ -2118,7 +2123,7 @@ msgstr "パスワードを変更します。" #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 msgid "Password change" -msgstr "パスワードの変更" +msgstr "パスワード変更" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2135,7 +2140,7 @@ msgstr "6文字以上" #: actions/passwordsettings.php:112 actions/recoverpassword.php:239 #: actions/register.php:432 actions/smssettings.php:134 msgid "Confirm" -msgstr "確認" +msgstr "パスワード確認" #: actions/passwordsettings.php:113 actions/recoverpassword.php:240 msgid "Same as password above" @@ -2171,135 +2176,128 @@ msgstr "パスワードが保存されました。" #: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:308 msgid "Paths" -msgstr "" +msgstr "パス" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." -msgstr "" +msgstr "パスと StatusNet サイトのサーバー設定" #: actions/pathsadminpanel.php:140 -#, fuzzy, php-format +#, php-format msgid "Theme directory not readable: %s" -msgstr "このページはあなたが承認したメディアタイプでは利用できません。" +msgstr "テーマディレクトリが読み込めません: %s" #: actions/pathsadminpanel.php:146 #, php-format msgid "Avatar directory not writable: %s" -msgstr "" +msgstr "アバターディレクトリに書き込みできません: %s" #: actions/pathsadminpanel.php:152 #, php-format msgid "Background directory not writable: %s" -msgstr "" +msgstr "バックグラウンドディレクトリに書き込みできません : %s" #: actions/pathsadminpanel.php:160 #, php-format msgid "Locales directory not readable: %s" -msgstr "" +msgstr "場所ディレクトリが読み込めません: %s" #: actions/pathsadminpanel.php:166 msgid "Invalid SSL server. The maximum length is 255 characters." -msgstr "" +msgstr "不正な SSL サーバー。最大 255 文字まで。" #: actions/pathsadminpanel.php:217 actions/siteadminpanel.php:58 #: lib/adminpanelaction.php:299 msgid "Site" -msgstr "" +msgstr "サイト" #: actions/pathsadminpanel.php:221 msgid "Path" -msgstr "" +msgstr "パス" #: actions/pathsadminpanel.php:221 -#, fuzzy msgid "Site path" -msgstr "新しい通知" +msgstr "サイトパス" #: actions/pathsadminpanel.php:225 msgid "Path to locales" -msgstr "" +msgstr "ロケールのパス" #: actions/pathsadminpanel.php:225 msgid "Directory path to locales" -msgstr "" +msgstr "ロケールへのディレクトリパス" #: actions/pathsadminpanel.php:232 msgid "Theme" -msgstr "" +msgstr "テーマ" #: actions/pathsadminpanel.php:237 msgid "Theme server" -msgstr "" +msgstr "テーマサーバー" #: actions/pathsadminpanel.php:241 msgid "Theme path" -msgstr "" +msgstr "テーマパス" #: actions/pathsadminpanel.php:245 msgid "Theme directory" -msgstr "" +msgstr "テーマディレクトリ" #: actions/pathsadminpanel.php:252 -#, fuzzy msgid "Avatars" msgstr "アバター" #: actions/pathsadminpanel.php:257 -#, fuzzy msgid "Avatar server" -msgstr "設定" +msgstr "アバターサーバー" #: actions/pathsadminpanel.php:261 -#, fuzzy msgid "Avatar path" -msgstr "アバターが更新されました。" +msgstr "アバターパス" #: actions/pathsadminpanel.php:265 -#, fuzzy msgid "Avatar directory" -msgstr "アバターが更新されました。" +msgstr "アバターディレクトリ" #: actions/pathsadminpanel.php:274 msgid "Backgrounds" -msgstr "" +msgstr "バックグラウンド" #: actions/pathsadminpanel.php:278 msgid "Background server" -msgstr "" +msgstr "バックグラウンドサーバー" #: actions/pathsadminpanel.php:282 msgid "Background path" -msgstr "" +msgstr "バックグラウンドパス" #: actions/pathsadminpanel.php:286 msgid "Background directory" -msgstr "" +msgstr "バックグラウンドディレクトリ" #: actions/pathsadminpanel.php:293 msgid "SSL" msgstr "" #: actions/pathsadminpanel.php:296 actions/siteadminpanel.php:346 -#, fuzzy msgid "Never" -msgstr "回復" +msgstr "" #: actions/pathsadminpanel.php:297 -#, fuzzy msgid "Sometimes" -msgstr "通知" +msgstr "ときどき" #: actions/pathsadminpanel.php:298 msgid "Always" -msgstr "" +msgstr "いつも" #: actions/pathsadminpanel.php:302 msgid "Use SSL" -msgstr "" +msgstr "SSL 使用" #: actions/pathsadminpanel.php:303 msgid "When to use SSL" -msgstr "" +msgstr "SSL 使用時" #: actions/pathsadminpanel.php:308 msgid "SSL Server" @@ -2307,12 +2305,11 @@ msgstr "" #: actions/pathsadminpanel.php:309 msgid "Server to direct SSL requests to" -msgstr "" +msgstr "ダイレクト SSL リクエストを向けるサーバ" #: actions/pathsadminpanel.php:325 -#, fuzzy msgid "Save paths" -msgstr "新しい通知" +msgstr "保存パス" #: actions/peoplesearch.php:52 #, php-format @@ -2320,30 +2317,31 @@ msgid "" "Search for people on %%site.name%% by their name, location, or interests. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -"%%site.name%% の人を名前、場所、興味から検索。検索語はスペース区切る。3字以上" +"%%site.name%% の人を名前、場所、興味から検索。検索語はスペース区切り。3字以" +"上。" #: actions/peoplesearch.php:58 msgid "People search" msgstr "ピープルサーチ" #: actions/peopletag.php:70 -#, fuzzy, php-format +#, php-format msgid "Not a valid people tag: %s" -msgstr "有効なメールアドレスではありません。" +msgstr "正しいタグではありません: %s" #: actions/peopletag.php:144 #, php-format msgid "Users self-tagged with %s - page %d" -msgstr "" +msgstr "ユーザがつけたタグ %s - ページ %d" #: actions/postnotice.php:84 msgid "Invalid notice content" -msgstr "不正な通知内容" +msgstr "不正なつぶやき内容" #: actions/postnotice.php:90 #, php-format msgid "Notice license ‘%s’ is not compatible with site license ‘%s’." -msgstr "" +msgstr "つぶやきライセンス ‘%s’ はサイトライセンス ‘%s’ と互換性がありません。" #: actions/profilesettings.php:60 msgid "Profile settings" @@ -2357,9 +2355,8 @@ msgstr "" "す。" #: actions/profilesettings.php:99 -#, fuzzy msgid "Profile information" -msgstr "プロファイルが不明" +msgstr "プロファイル情報" #: actions/profilesettings.php:108 lib/groupeditform.php:154 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" @@ -2402,109 +2399,114 @@ msgstr "場所" #: actions/profilesettings.php:134 actions/register.php:472 msgid "Where you are, like \"City, State (or Region), Country\"" -msgstr "自分のいる場所。例:「都市, 州 (または地域), 国」" +msgstr "自分のいる場所。例:「都市, 都道府県 (または地域), 国」" + +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "タグ" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -"自分自身についてのタグ (アルファベット/数字/-/./_)、カンマまたは空白区切" +"自分自身についてのタグ (アルファベット、数字、-、.、_)、カンマまたは空白区切" "りで" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "言語" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "ご希望の言語" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "タイムゾーン" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "普段のタイムゾーンはどれですか?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "自分をフォローしている者を自動的にフォローする (BOTに最適)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "自己紹介が長すぎます (最長140文字)。" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." -msgstr "" +msgstr "タイムゾーンが選ばれていません。" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." -msgstr "" +msgstr "言語が長すぎます。(最大50字)" -#: actions/profilesettings.php:246 actions/tagother.php:178 -#, fuzzy, php-format +#: actions/profilesettings.php:253 actions/tagother.php:178 +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "不正なホームページ '%s'" +msgstr "不正なタグ: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." -msgstr "" +msgstr "自動フォローのための利用者を更新できませんでした。" + +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "タグを保存できません。" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "プロファイルを保存できません" -#: actions/profilesettings.php:336 -#, fuzzy +#: actions/profilesettings.php:374 msgid "Couldn't save tags." -msgstr "プロファイルを保存できません" +msgstr "タグを保存できません。" -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "設定が保存されました。" #: actions/public.php:83 #, php-format msgid "Beyond the page limit (%s)" -msgstr "" +msgstr "ページ制限を超えました (%s)" #: actions/public.php:92 msgid "Could not retrieve public stream." -msgstr "" +msgstr "パブリックストリームを検索できません。" #: actions/public.php:129 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "パブリックタイムライン" +msgstr "パブリックタイムライン、ページ %d" #: actions/public.php:131 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "パブリックタイムライン" #: actions/public.php:151 -#, fuzzy msgid "Public Stream Feed (RSS 1.0)" -msgstr "パブリックフィード" +msgstr "パブリックストリームフィード (RSS 1.0)" #: actions/public.php:155 -#, fuzzy msgid "Public Stream Feed (RSS 2.0)" -msgstr "パブリックフィード" +msgstr "パブリックストリームフィード (RSS 2.0)" #: actions/public.php:159 -#, fuzzy msgid "Public Stream Feed (Atom)" -msgstr "パブリックフィード" +msgstr "パブリックストリームフィード (Atom)" #: actions/public.php:179 #, php-format @@ -2512,16 +2514,20 @@ msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" +"これは %%site.name%% のパブリックタイムラインです、しかしまだ誰も投稿していま" +"せん。" #: actions/public.php:182 msgid "Be the first to post!" -msgstr "" +msgstr "投稿する1番目になってください!" #: actions/public.php:186 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" +"なぜ [アカウント登録](%%action.register%%) しないのですか、そして最初の投稿を" +"してください!" #: actions/public.php:233 #, php-format @@ -2531,6 +2537,11 @@ msgid "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" +"これは %%site.name%% です。フリーソフトウェアツール[StatusNet](http://status." +"net/)を基にした[マイクロブロギング](http: //en.wikipedia.org/wiki/Micro-" +"blogging) サービス。[今すぐ参加](%%action.register%%)してあなた自身や友達、家" +"族そして同僚などについてのつぶやきを共有しましょう! ([もっと読む](%%doc.help%" +"%))" #: actions/public.php:238 #, php-format @@ -2539,25 +2550,28 @@ msgid "" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." msgstr "" +"これは %%site.name%% です。フリーソフトウェアツール[StatusNet](http://status." +"net/)を基にした[マイクロブロギング](http://en.wikipedia.org/wiki/Micro-" +"blogging) サービス。" #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "パブリックフィード" +msgstr "パブリックタグクラウド" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "これらは %s の人気がある最近のタグです " #: actions/publictagcloud.php:69 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" +"まだだれも [ハッシュタグ](%%doc.tags%%) 付きのつぶやきを投稿していません。" #: actions/publictagcloud.php:72 msgid "Be the first to post one!" -msgstr "" +msgstr "投稿する1番目になってください!" #: actions/publictagcloud.php:75 #, php-format @@ -2565,10 +2579,12 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" +"なぜ [アカウント登録](%%action.register%%) しないのですか。そして最初の投稿を" +"してください!" #: actions/publictagcloud.php:135 msgid "Tag cloud" -msgstr "" +msgstr "タグクラウド" #: actions/recoverpassword.php:36 msgid "You are already logged in!" @@ -2596,25 +2612,27 @@ msgstr "確認コードが古すぎます。もう一度やり直してくださ #: actions/recoverpassword.php:111 msgid "Could not update user with confirmed email address." -msgstr "" +msgstr "確認されたメールアドレスで利用者を更新できません。" #: actions/recoverpassword.php:152 msgid "" "If you have forgotten or lost your password, you can get a new one sent to " "the email address you have stored in your account." msgstr "" +"あなたのパスワードを忘れるか紛失したなら、あなたはアカウントに格納したメール" +"アドレスに新しいものを送らせることができます。" #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "" +msgstr "あなたは特定されました。 以下の新しいパスワードを入力してください。 " #: actions/recoverpassword.php:188 msgid "Password recovery" -msgstr "" +msgstr "パスワード回復" #: actions/recoverpassword.php:191 msgid "Nickname or email address" -msgstr "" +msgstr "ニックネームまたはメールアドレス" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." @@ -2634,11 +2652,11 @@ msgstr "パスワードを回復" #: actions/recoverpassword.php:210 actions/recoverpassword.php:322 msgid "Password recovery requested" -msgstr "パスワード回復のリクエストされました" +msgstr "パスワード回復がリクエストされました" #: actions/recoverpassword.php:213 msgid "Unknown action" -msgstr "" +msgstr "不明なアクション" #: actions/recoverpassword.php:236 msgid "6 or more characters, and don't forget it!" @@ -2654,11 +2672,11 @@ msgstr "ニックネームかメールアドレスを入力してください。 #: actions/recoverpassword.php:272 msgid "No user with that email address or username." -msgstr "" +msgstr "そのメールアドレスかユーザ名をもっている利用者がありません。" #: actions/recoverpassword.php:287 msgid "No registered email address for that user." -msgstr "そのユーザにはメールアドレスの登録がありません。" +msgstr "その利用者にはメールアドレスの登録がありません。" #: actions/recoverpassword.php:301 msgid "Error saving address confirmation." @@ -2668,7 +2686,7 @@ msgstr "アドレス確認保存エラー" msgid "" "Instructions for recovering your password have been sent to the email " "address registered to your account." -msgstr "登録されたメールアドレスにパスワードの回復方法をおおくりしました。" +msgstr "登録されたメールアドレスにパスワードの回復方法をお送りしました。" #: actions/recoverpassword.php:344 msgid "Unexpected password reset." @@ -2692,25 +2710,24 @@ msgstr "新しいパスワードの保存に成功しました。ログインし #: actions/register.php:85 actions/register.php:189 actions/register.php:404 msgid "Sorry, only invited people can register." -msgstr "" +msgstr "すみません、招待された人々だけが登録できます。" #: actions/register.php:92 -#, fuzzy msgid "Sorry, invalid invitation code." -msgstr "確認コードにエラーがあります。" +msgstr "すみません、不正な招待コード。" #: actions/register.php:112 msgid "Registration successful" -msgstr "" +msgstr "登録成功" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "登録" #: actions/register.php:135 msgid "Registration not allowed." -msgstr "" +msgstr "登録は許可されていません。" #: actions/register.php:198 msgid "You can't register if you don't agree to the license." @@ -2733,6 +2750,8 @@ msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" +"このフォームで新しいアカウントを作成できます。 次につぶやきを投稿して、友人や" +"同僚にリンクできます。 " #: actions/register.php:424 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." @@ -2745,7 +2764,7 @@ msgstr "6文字以上。必須です。" #: actions/register.php:433 msgid "Same as password above. Required." -msgstr "" +msgstr "上のパスワードと同じです。 必須。" #: actions/register.php:437 actions/register.php:441 #: actions/siteadminpanel.php:270 lib/accountsettingsaction.php:120 @@ -2758,22 +2777,21 @@ msgstr "更新、アナウンス、パスワードリカバリーでのみ使用 #: actions/register.php:449 msgid "Longer name, preferably your \"real\" name" -msgstr "" +msgstr "長い名前" #: actions/register.php:493 msgid "My text and files are available under " -msgstr "の下でテキスト及びファイルを利用可能" +msgstr "次の下でテキスト及びファイルを利用可能 " #: actions/register.php:495 msgid "Creative Commons Attribution 3.0" msgstr "" #: actions/register.php:496 -#, fuzzy msgid "" " except this private data: password, email address, IM address, and phone " "number." -msgstr "個人情報を除く:パスワード、メールアドレス、IMアドレス、電話番号" +msgstr "個人情報を除く: パスワード、メールアドレス、IMアドレス、電話番号" #: actions/register.php:537 #, php-format @@ -2823,22 +2841,22 @@ msgid "" "register%%) a new account. If you already have an account on a [compatible " "microblogging site](%%doc.openmublog%%), enter your profile URL below." msgstr "" -"サブスクライブするには、[ログイン](%%action.login%%) するか, [登録](%%action." +"フォローするには、[ログイン](%%action.login%%) するか, [登録](%%action." "register%%) を行って下さい。既に [compatible microblogging site](%%doc." -"openmublog%%) にアカウントを持っおもちの場合は、下にプロファイルURLを入力して" -"下さい." +"openmublog%%) にアカウントをお持ちの場合は、下にプロファイルURLを入力して下さ" +"い." #: actions/remotesubscribe.php:112 msgid "Remote subscribe" -msgstr "リモートサブスクライブ" +msgstr "リモートフォロー" #: actions/remotesubscribe.php:124 msgid "Subscribe to a remote user" -msgstr "リモートユーザーのフォローを許可" +msgstr "リモートユーザーをフォロー" #: actions/remotesubscribe.php:129 msgid "User nickname" -msgstr "ユーザのニックネーム" +msgstr "利用者のニックネーム" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" @@ -2862,47 +2880,43 @@ msgid "Invalid profile URL (bad format)" msgstr "不正なプロファイルURL。(形式不備)" #: actions/remotesubscribe.php:168 -#, fuzzy msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." -msgstr "有効なプロファイルURLではありません。(XRDSドキュメントが無い)" +msgstr "" +"有効なプロファイルURLではありません。(YADIS ドキュメントがないかまたは 不正" +"な XRDS 定義)" #: actions/remotesubscribe.php:176 msgid "That’s a local profile! Login to subscribe." msgstr "" +"それはローカルのプロファイルです! フォローするには、ログインしてください。" #: actions/remotesubscribe.php:183 -#, fuzzy msgid "Couldn’t get a request token." msgstr "リクエストトークンを取得できません" #: actions/repeat.php:57 msgid "Only logged-in users can repeat notices." -msgstr "" +msgstr "ログインユーザだけがつぶやきを繰り返せます。" #: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy msgid "No notice specified." -msgstr "新しい通知" +msgstr "つぶやきがありません。" #: actions/repeat.php:76 -#, fuzzy msgid "You can't repeat your own notice." -msgstr "ライセンスに同意頂けない場合は登録できません。" +msgstr "自分のつぶやきは繰り返せません。" #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "既にログイン済みです。" +msgstr "すでにそのつぶやきを繰り返しています。" #: actions/repeat.php:114 lib/noticelist.php:621 -#, fuzzy msgid "Repeated" -msgstr "作成" +msgstr "繰り返された" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "作成" +msgstr "繰り返されました!" #: actions/replies.php:125 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -2911,24 +2925,24 @@ msgid "Replies to %s" msgstr "%s への返信" #: actions/replies.php:127 -#, fuzzy, php-format +#, php-format msgid "Replies to %s, page %d" -msgstr "%s への返信" +msgstr "%s への返信、ページ %d" #: actions/replies.php:144 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "%sの通知フィード" +msgstr "%s の返信フィード (RSS 1.0)" #: actions/replies.php:151 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "%sの通知フィード" +msgstr "%s の返信フィード (RSS 2.0)" #: actions/replies.php:158 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "%sの通知フィード" +msgstr "%s の返信フィード (Atom)" #: actions/replies.php:198 #, php-format @@ -2936,6 +2950,8 @@ msgid "" "This is the timeline showing replies to %s but %s hasn't received a notice " "to his attention yet." msgstr "" +"これは %s への返信を表示したタイムラインです、しかし %s はまだつぶやきを受け" +"取っていません。" #: actions/replies.php:203 #, php-format @@ -2943,6 +2959,8 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"あなたは、他のユーザを会話をするか、多くの人々をフォローするか、または [グ" +"ループに加わる] (%%action.groups%%)ことができます。" #: actions/replies.php:205 #, php-format @@ -2950,51 +2968,54 @@ msgid "" "You can try to [nudge %s](../%s) or [post something to his or her attention]" "(%%%%action.newnotice%%%%?status_textarea=%s)." msgstr "" +"あなたは [合図 %s](../%s) するか、[その人宛てに何かを投稿](%%%%action." +"newnotice%%%%?status_textarea=%s)してください。" #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "%s への返信" +msgstr "%2$s 上の %1$s への返信!" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "そのプロファイルは送信されていません。" +msgstr "あなたはこのサイトのサンドボックスユーザができません。" #: actions/sandbox.php:72 -#, fuzzy msgid "User is already sandboxed." -msgstr "プロファイルがありません。" +msgstr "利用者はすでにサンドボックスです。" #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%s's favorite notices, page %d" -msgstr "そのような通知はありません。" +msgstr "%s のお気に入りのつぶやき、ページ %d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." -msgstr "" +msgstr "お気に入りのつぶやきを検索できません。" #: actions/showfavorites.php:170 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "%s のともだちのフィード" +msgstr "%s のお気に入りのフィード (RSS 1.0)" #: actions/showfavorites.php:177 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "%s のともだちのフィード" +msgstr "%s のお気に入りのフィード (RSS 2.0)" #: actions/showfavorites.php:184 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "%s のともだちのフィード" +msgstr "%s のお気に入りのフィード (Atom)" #: actions/showfavorites.php:205 msgid "" "You haven't chosen any favorite notices yet. Click the fave button on " "notices you like to bookmark them for later or shed a spotlight on them." msgstr "" +"あなたはまだ少しのお気に入りのつぶやきも選んでいません。 後でブックマークを追" +"加するあなたがそれらがお気に入りのつぶやきのときにお気に入りボタンをクリック" +"するか、またはそれらの上でスポットライトをはじいてください。" #: actions/showfavorites.php:207 #, php-format @@ -3002,6 +3023,8 @@ msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " "they would add to their favorites :)" msgstr "" +"%s はまだ彼のお気に入りに少しのつぶやきも加えていません。 彼らがお気に入りに" +"加えることおもしろいものを投稿してください:)" #: actions/showfavorites.php:211 #, php-format @@ -3010,25 +3033,27 @@ msgid "" "account](%%%%action.register%%%%) and then post something interesting they " "would add to their favorites :)" msgstr "" +"%s はまだお気に入りに少しのつぶやきも加えていません。 なぜ [アカウント登録](%" +"%%%action.register%%%%) しないのですか。そして、彼らがお気に入りに加えるおも" +"しろい何かを投稿しませんか:)" #: actions/showfavorites.php:242 msgid "This is a way to share what you like." -msgstr "" +msgstr "これは、あなたが好きなことを共有する方法です。" #: actions/showgroup.php:82 lib/groupnav.php:86 #, php-format msgid "%s group" -msgstr "" +msgstr "%s グループ" #: actions/showgroup.php:84 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "%s グループ、ページ %d" #: actions/showgroup.php:218 -#, fuzzy msgid "Group profile" -msgstr "そのような通知はありません。" +msgstr "グループプロファイル" #: actions/showgroup.php:263 actions/tagother.php:118 #: actions/userauthorization.php:167 lib/userprofile.php:177 @@ -3037,61 +3062,58 @@ msgstr "" #: actions/showgroup.php:274 actions/tagother.php:128 #: actions/userauthorization.php:179 lib/userprofile.php:194 -#, fuzzy msgid "Note" -msgstr "通知" +msgstr "ノート" #: actions/showgroup.php:284 lib/groupeditform.php:184 msgid "Aliases" -msgstr "" +msgstr "別名" #: actions/showgroup.php:293 msgid "Group actions" -msgstr "" +msgstr "グループアクション" #: actions/showgroup.php:328 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "%sの通知フィード" +msgstr "%s グループのつぶやきフィード (RSS 1.0)" #: actions/showgroup.php:334 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "%sの通知フィード" +msgstr "%s グループのつぶやきフィード (RSS 2.0)" #: actions/showgroup.php:340 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "%sの通知フィード" +msgstr "%s グループのつぶやきフィード (Atom)" #: actions/showgroup.php:345 -#, fuzzy, php-format +#, php-format msgid "FOAF for %s group" -msgstr "%sの通知フィード" +msgstr "%s グループの FOAF" #: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 -#, fuzzy msgid "Members" -msgstr "からのメンバー" +msgstr "メンバー" #: actions/showgroup.php:386 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/tagcloudsection.php:71 msgid "(None)" -msgstr "" +msgstr "(なし)" #: actions/showgroup.php:392 msgid "All members" -msgstr "" +msgstr "全てのメンバー" #: actions/showgroup.php:429 lib/profileaction.php:174 msgid "Statistics" msgstr "統計データ" #: actions/showgroup.php:432 -#, fuzzy msgid "Created" -msgstr "作成" +msgstr "作成されました" #: actions/showgroup.php:448 #, php-format @@ -3102,6 +3124,11 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** は %%site.name%% 上のユーザグループです。フリーソフトウェアツール" +"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http: //en." +"wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" +"する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" +"のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" #: actions/showgroup.php:454 #, php-format @@ -3111,29 +3138,32 @@ msgid "" "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" +"**%s** は %%site.name%% 上のユーザグループです。フリーソフトウェアツール" +"[StatusNet](http://status.net/)を基にした[マイクロブロギング](http: //en." +"wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" +"する短いメッセージを共有します。" #: actions/showgroup.php:482 -#, fuzzy msgid "Admins" msgstr "管理者" #: actions/showmessage.php:81 msgid "No such message." -msgstr "" +msgstr "そのようなメッセージはありません。" #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." -msgstr "" +msgstr "送信者と受取人だけがこのメッセージを読めます。" #: actions/showmessage.php:108 #, php-format msgid "Message to %1$s on %2$s" -msgstr "" +msgstr "%2$s 上の %1$s へのメッセージ" #: actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "%2$s 上の %1$s からのメッセージ" #: actions/shownotice.php:90 msgid "Notice deleted." @@ -3142,12 +3172,12 @@ msgstr "つぶやきを削除しました。" #: actions/showstream.php:73 #, php-format msgid " tagged %s" -msgstr "" +msgstr "タグ付けされた %s" #: actions/showstream.php:79 #, php-format msgid "%s, page %d" -msgstr "" +msgstr "%s、ページ %d" #: actions/showstream.php:122 #, php-format @@ -3172,18 +3202,20 @@ msgstr "%sのつぶやきフィード (Atom)" #: actions/showstream.php:148 #, php-format msgid "FOAF for %s" -msgstr "" +msgstr "%s の FOAF" #: actions/showstream.php:191 #, php-format msgid "This is the timeline for %s but %s hasn't posted anything yet." -msgstr "" +msgstr "これは %s のタイムラインですが、%s はまだなにも投稿していません。" #: actions/showstream.php:196 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" +"最近おもしろいものは何でしょう? あなたは少しのつぶやきも投稿していませんが、" +"いまは始める良い時でしょう:)" #: actions/showstream.php:198 #, php-format @@ -3191,6 +3223,8 @@ msgid "" "You can try to nudge %s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%s)." msgstr "" +"あなたは、%s に合図するか、[またはその人宛に何かを投稿](%%%%action.newnotice%" +"%%%?status_textarea=%s) しようとすることができます。" #: actions/showstream.php:234 #, php-format @@ -3200,6 +3234,11 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** は %%site.name%% 上のアカウントです。フリーソフトウェアツール" +"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http: //en." +"wikipedia.org/wiki/Micro-blogging) サービス。[今すぐ参加](%%%%action.register" +"%%%%)して、**%s** のつぶやきなどをフォローしましょう! ([もっと読む](%%%%doc." +"help%%%%))" #: actions/showstream.php:239 #, php-format @@ -3208,62 +3247,63 @@ msgid "" "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " msgstr "" +"**%s** は %%site.name%% 上のアカウントです。フリーソフトウェアツール" +"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http: //en." +"wikipedia.org/wiki/Micro-blogging) サービス。" #: actions/showstream.php:313 -#, fuzzy, php-format +#, php-format msgid "Repeat of %s" -msgstr "%s への返信" +msgstr "%s の繰り返し" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." -msgstr "" +msgstr "あなたはこのサイトでユーザを黙らせることができません。" #: actions/silence.php:72 -#, fuzzy msgid "User is already silenced." -msgstr "プロファイルがありません。" +msgstr "利用者は既に黙っています。" #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site." -msgstr "" +msgstr "この StatusNet サイトの基本設定。" #: actions/siteadminpanel.php:146 msgid "Site name must have non-zero length." -msgstr "" +msgstr "サイト名は長さ0ではいけません。" #: actions/siteadminpanel.php:154 -#, fuzzy msgid "You must have a valid contact email address" -msgstr "有効なメールアドレスではありません。" +msgstr "有効な連絡用メールアドレスがなければなりません。" #: actions/siteadminpanel.php:172 #, php-format msgid "Unknown language \"%s\"" -msgstr "" +msgstr "不明な言語 \"%s\"" #: actions/siteadminpanel.php:179 msgid "Invalid snapshot report URL." -msgstr "" +msgstr "不正なスナップショットレポートURL。" #: actions/siteadminpanel.php:185 msgid "Invalid snapshot run value." -msgstr "" +msgstr "不正なスナップショットランバリュー" #: actions/siteadminpanel.php:191 msgid "Snapshot frequency must be a number." -msgstr "" +msgstr "スナップショット頻度は数でなければなりません。" #: actions/siteadminpanel.php:197 msgid "Minimum text limit is 140 characters." -msgstr "" +msgstr "最小のテキスト制限は140字です。" #: actions/siteadminpanel.php:203 msgid "Dupe limit must 1 or more seconds." -msgstr "" +msgstr "デュープ制限は1秒以上でなければなりません。" #: actions/siteadminpanel.php:253 msgid "General" -msgstr "" +msgstr "一般" #: actions/siteadminpanel.php:256 msgid "Site name" @@ -3271,58 +3311,58 @@ msgstr "サイト名" #: actions/siteadminpanel.php:257 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "" +msgstr "あなたのサイトの名前、\"Yourcompany Microblog\"のような。" #: actions/siteadminpanel.php:261 msgid "Brought by" -msgstr "" +msgstr "持って来られます" #: actions/siteadminpanel.php:262 msgid "Text used for credits link in footer of each page" msgstr "" +"クレジットに使用されるテキストは、それぞれのページのフッターでリンクされま" +"す。" #: actions/siteadminpanel.php:266 msgid "Brought by URL" -msgstr "" +msgstr "URLで、持って来られます" #: actions/siteadminpanel.php:267 msgid "URL used for credits link in footer of each page" msgstr "" +"クレジットに使用されるURLは、それぞれのページのフッターでリンクされます。" #: actions/siteadminpanel.php:271 -#, fuzzy msgid "Contact email address for your site" -msgstr "そのユーザにはメールアドレスの登録がありません。" +msgstr "あなたのサイトにコンタクトするメールアドレス" #: actions/siteadminpanel.php:277 -#, fuzzy msgid "Local" -msgstr "場所" +msgstr "ローカル" #: actions/siteadminpanel.php:288 msgid "Default timezone" -msgstr "" +msgstr "デフォルトタイムゾーン" #: actions/siteadminpanel.php:289 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "サイトのデフォルトタイムゾーン; 通常UTC。" #: actions/siteadminpanel.php:295 msgid "Default site language" -msgstr "" +msgstr "デフォルトサイト言語" #: actions/siteadminpanel.php:303 msgid "URLs" msgstr "" #: actions/siteadminpanel.php:306 -#, fuzzy msgid "Server" -msgstr "回復" +msgstr "サーバー" #: actions/siteadminpanel.php:306 msgid "Site's server hostname." -msgstr "" +msgstr "サイトのサーバーホスト名" #: actions/siteadminpanel.php:310 msgid "Fancy URLs" @@ -3330,42 +3370,39 @@ msgstr "" #: actions/siteadminpanel.php:312 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" +msgstr "Fancy URL (読みやすく忘れにくい) を使用しますか?" #: actions/siteadminpanel.php:318 -#, fuzzy msgid "Access" -msgstr "承認" +msgstr "アクセス" #: actions/siteadminpanel.php:321 -#, fuzzy msgid "Private" -msgstr "プライバシー" +msgstr "プライベート" #: actions/siteadminpanel.php:323 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "匿名ユーザー(ログインしていません)がサイトを見るのを禁止しますか?" #: actions/siteadminpanel.php:327 msgid "Invite only" -msgstr "" +msgstr "招待のみ" #: actions/siteadminpanel.php:329 msgid "Make registration invitation only." -msgstr "" +msgstr "招待のみ登録する" #: actions/siteadminpanel.php:333 -#, fuzzy msgid "Closed" -msgstr "ブロック" +msgstr "閉じられた" #: actions/siteadminpanel.php:335 msgid "Disable new registrations." -msgstr "" +msgstr "新規登録を無効。" #: actions/siteadminpanel.php:341 msgid "Snapshots" -msgstr "" +msgstr "スナップショット" #: actions/siteadminpanel.php:344 msgid "Randomly during Web hit" @@ -3373,74 +3410,75 @@ msgstr "" #: actions/siteadminpanel.php:345 msgid "In a scheduled job" -msgstr "" +msgstr "予定されているジョブで" #: actions/siteadminpanel.php:347 msgid "Data snapshots" -msgstr "" +msgstr "データスナップショット" #: actions/siteadminpanel.php:348 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "いつ status.net サーバに統計データを送りますか" #: actions/siteadminpanel.php:353 msgid "Frequency" -msgstr "" +msgstr "頻度" #: actions/siteadminpanel.php:354 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "レポート URL" #: actions/siteadminpanel.php:359 msgid "Report URL" -msgstr "" +msgstr "レポート URL" #: actions/siteadminpanel.php:360 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "このURLにスナップショットを送るでしょう" #: actions/siteadminpanel.php:367 msgid "Limits" -msgstr "" +msgstr "制限" #: actions/siteadminpanel.php:370 msgid "Text limit" -msgstr "" +msgstr "テキスト制限" #: actions/siteadminpanel.php:370 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "つぶやきの文字の最大数" #: actions/siteadminpanel.php:374 msgid "Dupe limit" -msgstr "" +msgstr "デュープ制限" #: actions/siteadminpanel.php:374 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"どれくらい長い間(秒)、ユーザは、再び同じものを投稿するのを待たなければならな" +"いか。" #: actions/siteadminpanel.php:388 actions/useradminpanel.php:313 -#, fuzzy msgid "Save site settings" -msgstr "設定" +msgstr "サイト設定の保存" #: actions/smssettings.php:58 msgid "SMS Settings" -msgstr "" +msgstr "SMS 設定" #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." msgstr "" +"あなたは %%site.name%% からメールでSMSメッセージを受け取ることができます。" #: actions/smssettings.php:91 -#, fuzzy msgid "SMS is not available." -msgstr "このページはあなたが承認したメディアタイプでは利用できません。" +msgstr "SMS は利用できません。" #: actions/smssettings.php:112 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "現在の確認された SMS 可能な電話番号。" #: actions/smssettings.php:123 msgid "Awaiting confirmation on this phone number." @@ -3452,60 +3490,63 @@ msgstr "確認コード" #: actions/smssettings.php:131 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "あなたがあなたの電話で受け取ったコードを入れてください。" #: actions/smssettings.php:138 msgid "SMS Phone number" -msgstr "" +msgstr "SMS 電話番号" #: actions/smssettings.php:140 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" +msgstr "電話番号、句読点またはスペースがない、市街番号付き" #: actions/smssettings.php:174 msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"SMSを通してつぶやきを私に送ってください; 私は、私のキャリアから法外な料金を被" +"るかもしれないのを理解しています。" #: actions/smssettings.php:306 msgid "No phone number." -msgstr "" +msgstr "電話番号がありません。" #: actions/smssettings.php:311 msgid "No carrier selected." -msgstr "" +msgstr "キャリアが選択されていません。" #: actions/smssettings.php:318 msgid "That is already your phone number." -msgstr "" +msgstr "これはすでにあなたの電話番号です。" #: actions/smssettings.php:321 msgid "That phone number already belongs to another user." -msgstr "" +msgstr "この電話番号はすでに他の利用者に使われています。" #: actions/smssettings.php:347 -#, fuzzy msgid "" "A confirmation code was sent to the phone number you added. Check your phone " "for the code and instructions on how to use it." -msgstr "その確認コードはあなたのものではありません!" +msgstr "" +"あなたが加えた電話番号に確認コードを送りました。 どうそれを使用するかに関する" +"コードと指示のために電話をチェックしてください。" #: actions/smssettings.php:374 msgid "That is the wrong confirmation number." -msgstr "" +msgstr "それは間違った確認番号です。" #: actions/smssettings.php:405 msgid "That is not your phone number." -msgstr "" +msgstr "それはあなたの電話番号ではありません。" #: actions/smssettings.php:465 msgid "Mobile carrier" -msgstr "" +msgstr "携帯電話会社" #: actions/smssettings.php:469 msgid "Select a carrier" -msgstr "" +msgstr "キャリア選択" #: actions/smssettings.php:476 #, php-format @@ -3513,25 +3554,25 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" +"あなたの電話のための携帯電話会社。 メールの上にSMSを受け入れますが、ここに記" +"載されていないキャリアを知っているなら、メールを送って、%sで私たちに知らせて" +"ください。" #: actions/smssettings.php:498 msgid "No code entered" -msgstr "" +msgstr "コードが入力されていません" #: actions/subedit.php:70 -#, fuzzy msgid "You are not subscribed to that profile." -msgstr "そのプロファイルは送信されていません。" +msgstr "あなたはそのプロファイルにフォローされていません。" #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "サブスクリプションを作成できません" +msgstr "フォローを保存できません。" #: actions/subscribe.php:55 -#, fuzzy msgid "Not a local user." -msgstr "そのようなユーザはいません。" +msgstr "ローカルユーザではありません。" #: actions/subscribe.php:69 msgid "Subscribed" @@ -3561,11 +3602,13 @@ msgid "" "You have no subscribers. Try subscribing to people you know and they might " "return the favor" msgstr "" +"あなたには、フォローしている人が全くいません。 あなたが知っている人々をフォ" +"ローしてみてください。そうすれば、彼らはお気に入りを返すかもしれません。" #: actions/subscribers.php:110 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "" +msgstr "%s にはフォローしている人がいません。最初の人になりますか?" #: actions/subscribers.php:114 #, php-format @@ -3573,6 +3616,8 @@ msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"%s にはフォローしている人がいません。なぜ[アカウント登録](%%%%action.register" +"%%%%)して最初にならないのですか?" #: actions/subscriptions.php:52 #, php-format @@ -3604,100 +3649,96 @@ msgid "" msgstr "" #: actions/subscriptions.php:123 actions/subscriptions.php:127 -#, fuzzy, php-format +#, php-format msgid "%s is not listening to anyone." -msgstr "%1$s は %2$s であなたの通知を聞いています。" +msgstr "%s はだれも言うことを聞いていません。" #: actions/subscriptions.php:194 -#, fuzzy msgid "Jabber" -msgstr "Jabbar ID はありません。" +msgstr "" #: actions/subscriptions.php:199 lib/connectsettingsaction.php:115 msgid "SMS" msgstr "" #: actions/tag.php:68 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "マイクロブログ by %s" +msgstr "%s とタグ付けされたつぶやき、ページ %d" #: actions/tag.php:86 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "%sの通知フィード" +msgstr "%s とタグ付けされたつぶやきフィード (RSS 1.0)" #: actions/tag.php:92 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "%sの通知フィード" +msgstr "%s とタグ付けされたつぶやきフィード (RSS 2.0)" #: actions/tag.php:98 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "%sの通知フィード" +msgstr "%s とタグ付けされたつぶやきフィード (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." -msgstr "そのようなドキュメントはありません。" +msgstr "ID引数がありません。" #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "" +msgstr "タグ %s" #: actions/tagother.php:77 lib/userprofile.php:75 -#, fuzzy msgid "User profile" -msgstr "プロファイルがありません。" +msgstr "利用者プロファイル" #: actions/tagother.php:81 lib/userprofile.php:102 msgid "Photo" -msgstr "" +msgstr "写真" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "タグ利用者" #: actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" +"この利用者のタグ (アルファベット、数字、-、.、_)、カンマかスペース区切り" #: actions/tagother.php:193 msgid "" "You can only tag people you are subscribed to or who are subscribed to you." msgstr "" +"あなたはフォローされる人々にタグ付けをすることができるだけか、あなたをフォ" +"ローされているか。" #: actions/tagother.php:200 -#, fuzzy msgid "Could not save tags." -msgstr "アバターを保存できません" +msgstr "タグをを保存できません。" #: actions/tagother.php:236 msgid "Use this form to add tags to your subscribers or subscriptions." -msgstr "" +msgstr "このフォームを使用して、フォロー者かフォローにタグを加えてください。" #: actions/tagrss.php:35 -#, fuzzy msgid "No such tag." -msgstr "そのような通知はありません。" +msgstr "そのようなタグはありません。" #: actions/twitapitrends.php:87 msgid "API method under construction." msgstr "API メソッドが工事中です。" #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "既にログイン済みです。" +msgstr "あなたはそのユーザをブロックしていません。" #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "プロファイルがありません。" +msgstr "利用者はサンドボックスではありません。" #: actions/unsilence.php:72 #, fuzzy @@ -4007,16 +4048,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "つぶやきを保存する際に問題が発生しました。" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "返信を追加する際にデータベースエラー : %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4074,131 +4115,131 @@ msgstr "" msgid "Untitled page" msgstr "名称未設定ページ" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "ホーム" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "アカウント" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "メールアドレス、アバター、パスワード、プロパティの変更" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "接続" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "サーバへリダイレクトできません : %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "サブスクリプション" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "招待" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "友人や同僚が %s で加わるよう誘ってください。" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "ログアウト" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "サイトからログアウト" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "アカウントを作成" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "サイトへログイン" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "ヘルプ" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "助けて!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "検索" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "人々かテキストを検索" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "サイトつぶやき" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "ローカルビュー" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "ページつぶやき" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "サブスクリプション" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "解説" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "よくある質問" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "プライバシー" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "ソース" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "連絡先" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "バッジ" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4207,12 +4248,12 @@ msgstr "" "**%%site.name%%** は [%%site.broughtby%%](%%site.broughtbyurl%%) が提供するマ" "イクロブログサービスです。 " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** はマイクロブログサービスです。 " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4223,34 +4264,34 @@ msgstr "" "いています。 ライセンス [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)。" -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "新しい通知" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "全て " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "ライセンス。" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "ページ化" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "<< 前" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "前 >>" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5072,6 +5113,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index eb7cdfb3c..065170972 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:45+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:07+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -193,11 +193,11 @@ msgstr "사용자를 업데이트 할 수 없습니다." msgid "You cannot block yourself!" msgstr "사용자를 업데이트 할 수 없습니다." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "사용자 차단에 실패했습니다." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "사용자 차단 해제에 실패했습니다." @@ -314,7 +314,7 @@ msgid "Could not find target user." msgstr "어떠한 상태도 찾을 수 없습니다." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -322,25 +322,25 @@ msgstr "" "다." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "별명이 이미 사용중 입니다. 다른 별명을 시도해 보십시오." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "유효한 별명이 아닙니다" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "홈페이지 주소형식이 올바르지 않습니다." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "실명이 너무 깁니다. (최대 255글자)" @@ -351,7 +351,7 @@ msgid "Description is too long (max %d chars)." msgstr "설명이 너무 길어요. (최대 140글자)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "위치가 너무 깁니다. (최대 255글자)" @@ -472,7 +472,7 @@ msgstr "너무 깁니다. 통지의 최대 길이는 140글자 입니다." msgid "Not found" msgstr "찾지 못함" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -616,13 +616,13 @@ msgid "Crop" msgstr "자르기" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -695,7 +695,7 @@ msgstr "네, 맞습니다." msgid "Block this user" msgstr "이 사용자 차단하기" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "정보차단을 저장하는데 실패했습니다." @@ -770,7 +770,7 @@ msgstr "그 주소는 이미 승인되었습니다." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "사용자를 업데이트 할 수 없습니다." @@ -983,7 +983,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1493,7 +1493,7 @@ msgstr "%s 그룹 회원, %d페이지" msgid "A list of the users in this group." msgstr "이 그룹의 회원리스트" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "관리자" @@ -1586,7 +1586,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "회원이 당신을 차단해왔습니다." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "차단 제거 에러!" @@ -1886,7 +1886,7 @@ msgstr "틀린 계정 또는 비밀 번호" msgid "Error setting user. You are probably not authorized." msgstr "인증이 되지 않았습니다." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "로그인" @@ -1999,7 +1999,7 @@ msgstr "메시지" msgid "Direct message to %s sent" msgstr "%s에게 보낸 직접 메시지" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax 에러입니다." @@ -2007,7 +2007,7 @@ msgstr "Ajax 에러입니다." msgid "New notice" msgstr "새로운 통지" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "게시글이 등록되었습니다." @@ -2444,69 +2444,78 @@ msgstr "위치" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "당신은 어디에 삽니까? \"시, 도 (or 군,구), 나라" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "태그" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "당신을 위한 태그, (문자,숫자,-, ., _로 구성) 콤마 혹은 공백으로 구분." -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "언어" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "언어 설정" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "타임존" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "당신이 주로 생활하는 곳이 어떤 타임존입니까?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "나에게 구독하는 사람에게 자동 구독 신청" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "자기소개가 너무 깁니다. (최대 140글자)" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "타임존이 설정 되지 않았습니다." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "언어가 너무 깁니다. (최대 50글자)" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "유효하지 않은태그: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "자동구독에 사용자를 업데이트 할 수 없습니다." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "태그를 저장할 수 없습니다." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "프로필을 저장 할 수 없습니다." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "태그를 저장할 수 없습니다." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "설정 저장" @@ -2742,7 +2751,7 @@ msgstr "확인 코드 오류" msgid "Registration successful" msgstr "회원 가입이 성공적입니다." -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "회원가입" @@ -4071,16 +4080,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "이 사이트에 게시글 포스팅으로부터 당신은 금지되었습니다." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "통지를 저장하는데 문제가 발생했습니다." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "답신을 추가 할 때에 데이타베이스 에러 : %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4136,131 +4145,131 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "제목없는 페이지" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "주 사이트 네비게이션" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "홈" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "개인 프로필과 친구 타임라인" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "계정" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "당신의 이메일, 아바타, 비밀 번호, 프로필을 변경하세요." -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "연결" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "서버에 재접속 할 수 없습니다 : %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "주 사이트 네비게이션" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "초대" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "%s에 친구를 가입시키기 위해 친구와 동료를 초대합니다." -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "로그아웃" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "이 사이트로부터 로그아웃" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "계정 만들기" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "이 사이트 로그인" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "도움말" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "도움이 필요해!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "검색" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "프로필이나 텍스트 검색" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "사이트 공지" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "로컬 뷰" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "페이지 공지" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "보조 사이트 네비게이션" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "정보" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "자주 묻는 질문" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "개인정보 취급방침" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "소스 코드" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "연락하기" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "찔러 보기" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4269,12 +4278,12 @@ msgstr "" "**%%site.name%%** 는 [%%site.broughtby%%](%%site.broughtbyurl%%)가 제공하는 " "마이크로블로깅서비스입니다." -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 는 마이크로블로깅서비스입니다." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4285,32 +4294,32 @@ msgstr "" "을 사용합니다. StatusNet는 [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html) 라이선스에 따라 사용할 수 있습니다." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "라코니카 소프트웨어 라이선스" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "모든 것" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "라이선스" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "페이지수" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "뒷 페이지" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "앞 페이지" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "당신의 세션토큰관련 문제가 있습니다." @@ -5135,6 +5144,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 96f199c79..c3f3aacb8 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -1,6 +1,7 @@ # Translation of StatusNet to Macedonian # # Author@translatewiki.net: Bjankuloski06 +# Author@translatewiki.net: Brest # -- # This file is distributed under the same license as the StatusNet package. # @@ -8,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:48+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:09+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -63,14 +64,14 @@ msgid "%s and friends" msgstr "%s и пријателите" #: actions/all.php:99 -#, fuzzy, php-format +#, php-format msgid "Feed for friends of %s (RSS 1.0)" -msgstr "Канал со пријатели на %S" +msgstr "Канал со пријатели на %s (RSS 1.0)" #: actions/all.php:107 -#, fuzzy, php-format +#, php-format msgid "Feed for friends of %s (RSS 2.0)" -msgstr "Канал со пријатели на %S" +msgstr "Канал со пријатели на %s (RSS 2.0)" #: actions/all.php:115 #, php-format @@ -190,11 +191,11 @@ msgstr "Корисникот не може да се освежи/" msgid "You cannot block yourself!" msgstr "Не можете да се блокирате самите себеси!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -307,31 +308,31 @@ msgid "Could not find target user." msgstr "Не можев да го пронајдам целниот корисник." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Прекарот мора да има само мали букви и бројки и да нема празни места." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Тој прекар е во употреба. Одберете друг." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Неправилен прекар." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Домашната страница не е правилно URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Целото име е предолго (максимум 255 знаци)" @@ -342,7 +343,7 @@ msgid "Description is too long (max %d chars)." msgstr "Описот е предолг (дозволено е највеќе %d знаци)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Локацијата е предолга (максимумот е 255 знаци)." @@ -461,7 +462,7 @@ msgstr "Ова е предолго. Максималната должина е 1 msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -607,13 +608,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -688,7 +689,7 @@ msgstr "" msgid "Block this user" msgstr "Нема таков корисник." -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -763,7 +764,7 @@ msgstr "Оваа адреса веќе е потврдена." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Корисникот не може да се освежи/" @@ -971,7 +972,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1477,7 +1478,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1569,7 +1570,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "Корисникот нема профил." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Грешка во снимањето на корисникот." @@ -1849,7 +1850,7 @@ msgstr "Неточно корисничко име или лозинка" msgid "Error setting user. You are probably not authorized." msgstr "Не е одобрено." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Пријави се" @@ -1961,7 +1962,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1969,7 +1970,7 @@ msgstr "" msgid "New notice" msgstr "Ново известување" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "Известувања" @@ -2409,70 +2410,79 @@ msgstr "Локација" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Каде се наоѓате, на пр. „Град, Држава“." -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Биографијата е предолга (максимумот е 140 знаци)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "Невалидна домашна страница: '%s'" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Профилот не може да се сними." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Профилот не може да се сними." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "Профилот не може да се сними." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Поставките се снимени." @@ -2710,7 +2720,7 @@ msgstr "Грешка со кодот за потврдување." msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Регистрирај се" @@ -4009,16 +4019,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Проблем во снимањето на известувањето." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Одговор од внесот во базата: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4077,135 +4087,135 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Дома" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "За" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Поврзи се" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Не може да се пренасочи кон серверот: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Претплати" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Одјави се" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Создај сметка" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Помош" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "Помош" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Барај" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Ново известување" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Ново известување" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Претплати" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "За" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "ЧПП" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Приватност" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Изворен код" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Контакт" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4214,12 +4224,12 @@ msgstr "" "**%%site.name%%** е сервис за микроблогирање што ви го овозможува [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** е сервис за микроблогирање." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4230,34 +4240,34 @@ msgstr "" "верзија %s, достапен пд [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Ново известување" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "« Следни" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "Предходни »" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5086,6 +5096,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index eadbb8fc2..fb773cecc 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:52+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:13+0000\n" "Language-Team: Norwegian (bokmål)‬\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -199,11 +199,11 @@ msgstr "Klarte ikke å oppdatere bruker." msgid "You cannot block yourself!" msgstr "Du kan ikke blokkere deg selv!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blokkering av bruker mislyktes." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Oppheving av blokkering av bruker mislyktes." @@ -317,31 +317,31 @@ msgid "Could not find target user." msgstr "Klarte ikke å oppdatere bruker." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Kallenavn kan kun ha små bokstaver og tall og ingen mellomrom." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Det nicket er allerede i bruk. Prøv et annet." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ugyldig nick." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Hjemmesiden er ikke en gyldig URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Beklager, navnet er for langt (max 250 tegn)." @@ -352,7 +352,7 @@ msgid "Description is too long (max %d chars)." msgstr "Beskrivelsen er for lang (maks %d tegn)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "" @@ -471,7 +471,7 @@ msgstr "" msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -616,13 +616,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -695,7 +695,7 @@ msgstr "Ja" msgid "Block this user" msgstr "" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -769,7 +769,7 @@ msgstr "" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Klarte ikke å oppdatere bruker." @@ -975,7 +975,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1472,7 +1472,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "En liste over brukerne i denne gruppen." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" @@ -1561,7 +1561,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "" @@ -1853,7 +1853,7 @@ msgstr "Feil brukernavn eller passord" msgid "Error setting user. You are probably not authorized." msgstr "Ikke autorisert." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Logg inn" @@ -1961,7 +1961,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1969,7 +1969,7 @@ msgstr "" msgid "New notice" msgstr "" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "" @@ -2396,71 +2396,80 @@ msgstr "" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tagger" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Språk" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Tidssone" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Abonner automatisk på de som abonnerer på meg (best for ikke-mennesker)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "«Om meg» er for lang (maks 140 tegn)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "Ugyldig hjemmeside '%s'" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Klarte ikke å lagre profil." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Klarte ikke å lagre profil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "Klarte ikke å lagre profil." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "" @@ -2692,7 +2701,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3978,16 +3987,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4045,131 +4054,131 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Hjem" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "Om" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Koble til" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Logg ut" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "Opprett en ny konto" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Hjelp" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "Hjelp" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Søk" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Om" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "OSS/FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Kilde" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4178,12 +4187,12 @@ msgstr "" "**%%site.name%%** er en mikrobloggingtjeneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er en mikrobloggingtjeneste. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4191,32 +4200,32 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "Tidligere »" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5039,6 +5048,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 0d7d9d58f..6204d6900 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:03+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:19+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -200,11 +200,11 @@ msgstr "Het was niet mogelijk uw ontwerp bij te werken." msgid "You cannot block yourself!" msgstr "U kunt zichzelf niet blokkeren!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Het blokkeren van de gebruiker is mislukt." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Het deblokkeren van de gebruiker is mislukt." @@ -321,7 +321,7 @@ msgid "Could not find target user." msgstr "Het was niet mogelijk de doelgebruiker te vinden." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -329,26 +329,26 @@ msgstr "" "geen spaties bevatten." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "" "De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Geen geldige gebruikersnaam." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "De thuispagina is geen geldige URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "De volledige naam is te lang (maximaal 255 tekens)." @@ -359,7 +359,7 @@ msgid "Description is too long (max %d chars)." msgstr "De beschrijving is te lang. Gebruik maximaal %d tekens." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Locatie is te lang (maximaal 255 tekens)." @@ -474,7 +474,7 @@ msgstr "Dat is te lang. De maximale mededelingslengte is 140 tekens." msgid "Not found" msgstr "Niet gevonden" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -619,13 +619,13 @@ msgid "Crop" msgstr "Uitsnijden" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -701,7 +701,7 @@ msgstr "Ja" msgid "Block this user" msgstr "Deze gebruiker blokkeren" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Het was niet mogelijk om de blokkadeinformatie op te slaan." @@ -773,7 +773,7 @@ msgstr "Dit adres is al bevestigd." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Kon gebruiker niet actualiseren." @@ -975,7 +975,7 @@ msgstr "Standaardinstellingen toepassen" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1484,7 +1484,7 @@ msgstr "% groeps leden, pagina %d" msgid "A list of the users in this group." msgstr "Ledenlijst van deze groep" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Beheerder" @@ -1584,7 +1584,7 @@ msgstr "Alleen beheerders kunnen groepsleden deblokkeren." msgid "User is not blocked from group." msgstr "De gebruiker is niet de toegang tot de groep ontzegd." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Er is een fout opgetreden bij het verwijderen van de blokkade." @@ -1896,7 +1896,7 @@ msgstr "" "Er is een fout opgetreden bij het maken van de instellingen. U hebt " "waarschijnlijk niet de juiste rechten." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Aanmelden" @@ -2007,7 +2007,7 @@ msgstr "Bericht verzonden." msgid "Direct message to %s sent" msgstr "Het directe bericht aan %s is verzonden" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Er is een Ajax-fout opgetreden" @@ -2015,7 +2015,7 @@ msgstr "Er is een Ajax-fout opgetreden" msgid "New notice" msgstr "Nieuw bericht" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "De mededeling is verzonden" @@ -2448,75 +2448,84 @@ msgstr "Locatie" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Waar u bent, bijvoorbeeld \"woonplaats, land\" of \"postcode, land\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Labels" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Eigen labels (letter, getallen, -, ., en _). Gescheiden door komma's of " "spaties" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Taal" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Voorkeurstaal" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Tijdzone" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "In welke tijdzone verblijft u meestal?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Automatisch abonneren bij abonnement op mij (beste voor automatische " "processen)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "De beschrijving is te lang (maximaal %d tekens)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Er is geen tijdzone geselecteerd." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Taal is te lang (max 50 tekens)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ongeldig label: '%s'" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" "Het was niet mogelijk de instelling voor automatisch abonneren voor de " "gebruiker bij te werken." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Het was niet mogelijk de labels op te slaan." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Het profiel kon niet opgeslagen worden." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Het was niet mogelijk de labels op te slaan." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "De instellingen zijn opgeslagen." @@ -2768,7 +2777,7 @@ msgstr "Sorry. De uitnodigingscode is ongeldig." msgid "Registration successful" msgstr "De registratie is voltooid" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registreren" @@ -4126,17 +4135,17 @@ msgid "You are banned from posting notices on this site." msgstr "" "U bent geblokkeerd en mag geen mededelingen meer achterlaten op deze site." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Er is een probleem opgetreden bij het opslaan van de mededeling." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" "Er is een databasefout opgetreden bij het invoegen van het antwoord: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4191,128 +4200,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Naamloze pagina" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Primaire sitenavigatie" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Start" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Persoonlijk profiel en tijdlijn van vrienden" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Gebruiker" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Uw e-mailadres, avatar, wachtwoord of profiel wijzigen" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Koppelen" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Met diensten verbinden" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Websiteinstellingen wijzigen" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Uitnodigen" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Vrienden en collega's uitnodigen om u te vergezellen op %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Afmelden" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Van de site afmelden" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Gebruiker aanmaken" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Bij de site aanmelden" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Help" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Help me!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Zoeken" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Naar gebruikers of tekst zoeken" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Mededeling van de website" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Lokale weergaven" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Mededeling van de pagina" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Secundaire sitenavigatie" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Over" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Veel gestelde vragen" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "Gebruiksvoorwaarden" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacy" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Broncode" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contact" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Widget" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Licentie van de StatusNet-software" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4321,12 +4330,12 @@ msgstr "" "**%%site.name%%** is een microblogdienst van [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** is een microblogdienst. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4337,31 +4346,31 @@ msgstr "" "versie %s, beschikbaar onder de [GNU Affero General Public License](http://" "www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licentie voor siteinhoud" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Alle " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licentie." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Later" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Eerder" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Er is een probleem met uw sessietoken." @@ -5307,6 +5316,14 @@ msgstr "Toevoegen" msgid "Attach a file" msgstr "Bestand toevoegen" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index e327c5aa0..aa4705631 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:10:58+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:16+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -193,11 +193,11 @@ msgstr "Kan ikkje oppdatera brukar." msgid "You cannot block yourself!" msgstr "Kan ikkje oppdatera brukar." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blokkering av brukar feila." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "De-blokkering av brukar feila." @@ -314,31 +314,31 @@ msgid "Could not find target user." msgstr "Kan ikkje finna einkvan status." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Kallenamn må berre ha små bokstavar og nummer, ingen mellomrom." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Kallenamnet er allereie i bruk. Prøv eit anna." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Ikkje eit gyldig brukarnamn." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Heimesida er ikkje ei gyldig internettadresse." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Ditt fulle namn er for langt (maksimalt 255 teikn)." @@ -349,7 +349,7 @@ msgid "Description is too long (max %d chars)." msgstr "skildringa er for lang (maks 140 teikn)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Plassering er for lang (maksimalt 255 teikn)." @@ -470,7 +470,7 @@ msgstr "Det er for langt! Ein notis kan berre innehalde 140 teikn." msgid "Not found" msgstr "Fann ikkje" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -614,13 +614,13 @@ msgid "Crop" msgstr "Skaler" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -693,7 +693,7 @@ msgstr "Jau" msgid "Block this user" msgstr "Blokkér denne brukaren" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Lagring av informasjon feila." @@ -768,7 +768,7 @@ msgstr "Den addressa har alt blitt bekrefta." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Kan ikkje oppdatera brukar." @@ -982,7 +982,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1493,7 +1493,7 @@ msgstr "%s medlemmar i gruppa, side %d" msgid "A list of the users in this group." msgstr "Ei liste over brukarane i denne gruppa." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" @@ -1586,7 +1586,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "Brukar har blokkert deg." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Feil ved fjerning av blokka." @@ -1888,7 +1888,7 @@ msgstr "Feil brukarnamn eller passord" msgid "Error setting user. You are probably not authorized." msgstr "Ikkje autorisert." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Logg inn" @@ -2003,7 +2003,7 @@ msgstr "Melding" msgid "Direct message to %s sent" msgstr "Direkte melding til %s sendt" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax feil" @@ -2011,7 +2011,7 @@ msgstr "Ajax feil" msgid "New notice" msgstr "Ny notis" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Melding lagra" @@ -2450,72 +2450,81 @@ msgstr "Plassering" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Kvar er du, t.d. «By, Fylke (eller Region), Land»" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Merkelappar" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "merkelappar for deg sjølv ( bokstavar, nummer, -, ., og _ ), komma eller " "mellomroms separert." -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Språk" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Foretrukke språk" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Tidssone" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Kva tidssone er du vanlegvis i?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Automatisk ting notisane til dei som tingar mine (best for ikkje-menneskje)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "«Om meg» er for lang (maks 140 " -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Tidssone er ikkje valt." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Språk er for langt (maksimalt 50 teikn)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ugyldig merkelapp: %s" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Kan ikkje oppdatera brukar for automatisk tinging." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Kan ikkje lagra merkelapp." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Kan ikkje lagra profil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Kan ikkje lagra merkelapp." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Lagra innstillingar." @@ -2752,7 +2761,7 @@ msgstr "Feil med stadfestingskode." msgid "Registration successful" msgstr "Registreringa gikk bra" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrér" @@ -4088,16 +4097,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Du kan ikkje lengre legge inn notisar på denne sida." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Eit problem oppstod ved lagring av notis." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Databasefeil, kan ikkje lagra svar: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4153,131 +4162,131 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Ingen tittel" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Navigasjon for hovudsida" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Heim" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Personleg profil og oversyn over vener" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Konto" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Endra e-posten, avataren, passordet eller profilen" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Kopla til" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Klarte ikkje å omdirigera til tenaren: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Navigasjon for hovudsida" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Invitér" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Inviter vennar og kollega til å bli med deg på %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Logg ut" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Logg ut or sida" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Opprett ny konto" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Logg inn or sida" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Hjelp" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Hjelp meg!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Søk" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Søk etter folk eller innhald" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Statusmelding" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Lokale syningar" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Sidenotis" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Andrenivås side navigasjon" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Om" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "OSS" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Personvern" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Kjeldekode" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "Dult" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNets programvarelisens" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4286,12 +4295,12 @@ msgstr "" "**%%site.name%%** er ei mikrobloggingteneste av [%%site.broughtby%%](%%site." "broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** er ei mikrobloggingteneste. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4302,32 +4311,32 @@ msgstr "" "%s, tilgjengeleg under [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "StatusNets programvarelisens" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Alle" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "lisens." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginering" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "« Etter" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Før »" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Det var eit problem med sesjons billetten din." @@ -5162,6 +5171,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index f57cbd100..0184ada85 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:06+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:22+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -203,11 +203,11 @@ msgstr "Nie można zaktualizować wyglądu." msgid "You cannot block yourself!" msgstr "Nie można zablokować siebie." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Zablokowanie użytkownika nie powiodło się." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Odblokowanie użytkownika nie powiodło się." @@ -322,31 +322,31 @@ msgid "Could not find target user." msgstr "Nie można odnaleźć użytkownika docelowego." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Pseudonim może zawierać tylko małe litery i cyfry, bez spacji." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Pseudonim jest już używany. Spróbuj innego." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "To nie jest prawidłowy pseudonim." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Strona domowa nie jest prawidłowym adresem URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Imię i nazwisko jest za długie (maksymalnie 255 znaków)." @@ -357,7 +357,7 @@ msgid "Description is too long (max %d chars)." msgstr "Opis jest za długi (maksymalnie %d znaków)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Położenie jest za długie (maksymalnie 255 znaków)." @@ -472,7 +472,7 @@ msgstr "Wpis jest za długi. Maksymalna długość wynosi %d znaków." msgid "Not found" msgstr "Nie odnaleziono" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maksymalny rozmiar wpisu wynosi %d znaków, w tym adres URL załącznika." @@ -614,13 +614,13 @@ msgid "Crop" msgstr "Przytnij" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -693,7 +693,7 @@ msgstr "Tak" msgid "Block this user" msgstr "Zablokuj tego użytkownika" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Zapisanie informacji o blokadzie nie powiodło się." @@ -765,7 +765,7 @@ msgstr "Ten adres został już potwierdzony." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Nie można zaktualizować użytkownika." @@ -963,7 +963,7 @@ msgstr "Przywróć domyślne ustawienia" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1460,7 +1460,7 @@ msgstr "Członkowie grupy %s, strona %d" msgid "A list of the users in this group." msgstr "Lista użytkowników znajdujących się w tej grupie." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administrator" @@ -1558,7 +1558,7 @@ msgstr "Tylko administrator może odblokowywać członków grupy." msgid "User is not blocked from group." msgstr "Użytkownik nie został zablokowany w grupie." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Błąd podczas usuwania blokady." @@ -1866,7 +1866,7 @@ msgstr "Niepoprawna nazwa użytkownika lub hasło." msgid "Error setting user. You are probably not authorized." msgstr "Błąd podczas ustawiania użytkownika. Prawdopodobnie brak upoważnienia." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Zaloguj się" @@ -1979,7 +1979,7 @@ msgstr "Wysłano wiadomość" msgid "Direct message to %s sent" msgstr "Wysłano bezpośrednią wiadomość do użytkownika %s" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Błąd AJAX" @@ -1987,7 +1987,7 @@ msgstr "Błąd AJAX" msgid "New notice" msgstr "Nowy wpis" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Wysłano wpis" @@ -2418,72 +2418,81 @@ msgstr "Położenie" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Gdzie jesteś, np. \"miasto, województwo (lub region), kraj\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Znaczniki" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Znaczniki dla siebie (litery, liczby, -, . i _), oddzielone przecinkami lub " "spacjami" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Język" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Preferowany język" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Strefa czasowa" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "W jakiej strefie czasowej zwykle się znajdujesz?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Automatycznie subskrybuj każdego, kto mnie subskrybuje (najlepsze dla botów)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Wpis \"O mnie\" jest za długi (maksymalnie %d znaków)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Nie wybrano strefy czasowej." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Język jest za długi (maksymalnie 50 znaków)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Nieprawidłowy znacznik: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Nie można zaktualizować użytkownika do automatycznej subskrypcji." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Nie można zapisać znaczników." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Nie można zapisać profilu." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Nie można zapisać znaczników." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Zapisano ustawienia." @@ -2729,7 +2738,7 @@ msgstr "Nieprawidłowy kod zaproszenia." msgid "Registration successful" msgstr "Rejestracja powiodła się" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Zarejestruj się" @@ -4073,16 +4082,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Zabroniono ci wysyłania wpisów na tej stronie." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problem podczas zapisywania wpisu." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Błąd bazy danych podczas wprowadzania odpowiedzi: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4137,128 +4146,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Strona bez nazwy" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Główna nawigacja strony" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Strona domowa" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Profil osobisty i oś czasu przyjaciół" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Konto" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Zmień adres e-mail, awatar, hasło, profil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Połącz" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Połącz z serwisami" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Zmień konfigurację strony" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Zaproś" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Zaproś przyjaciół i kolegów do dołączenia do ciebie na %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Wyloguj się" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Wyloguj się ze strony" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Utwórz konto" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Zaloguj się na stronę" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Pomoc" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Pomóż mi." -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Wyszukaj" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Wyszukaj osoby lub tekst" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Wpis strony" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Lokalne widoki" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Wpis strony" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Druga nawigacja strony" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "O usłudze" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "TOS" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Prywatność" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Kod źródłowy" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Odznaka" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Licencja oprogramowania StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4267,12 +4276,12 @@ msgstr "" "**%%site.name%%** jest usługą mikroblogowania prowadzoną przez [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** jest usługą mikroblogowania. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4283,31 +4292,31 @@ msgstr "" "status.net/) w wersji %s, dostępnego na [Powszechnej Licencji Publicznej GNU " "Affero](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licencja zawartości strony" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Wszystko " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licencja." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginacja" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Później" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Wcześniej" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Wystąpił problem z tokenem sesji." @@ -4566,7 +4575,6 @@ msgstr[1] "Jesteś członkiem tych grup:" msgstr[2] "Jesteś członkiem tych grup:" #: lib/command.php:745 -#, fuzzy msgid "" "Commands:\n" "on - turn on notifications\n" @@ -4610,38 +4618,41 @@ msgstr "" "on - włącza powiadomienia\n" "off - wyłącza powiadomienia\n" "help - wyświetla tę pomoc\n" -"follow - subskrybuje użytkownika\n" -"groups - wyświetla listę grup, do których dołączono\n" +"follow - włącza obserwowanie użytkownika\n" +"groups - wyświetla listę grup, do których dołączyłeś\n" "subscriptions - wyświetla listę obserwowanych osób\n" "subscribers - wyświetla listę osób, które cię obserwują\n" -"leave - rezygnuje z subskrypcji użytkownika\n" +"leave - rezygnuje z obserwowania użytkownika\n" "d - bezpośrednia wiadomość do użytkownika\n" -"get - uzyskuje ostatni wpis użytkownika\n" -"whois - uzyskuje informacje o profilu użytkownika\n" +"get - zwraca ostatni wpis użytkownika\n" +"whois - zwraca informacje o profilu użytkownika\n" "fav - dodaje ostatni wpis użytkownika jako \"ulubiony\"\n" "fav # - dodaje wpis z podanym identyfikatorem jako " "\"ulubiony\"\n" +"repeat # - powtarza wiadomość z zadanym " +"identyfikatorem\n" +"repeat - powtarza ostatnią wiadomość od użytkownika\n" "reply # - odpowiada na wpis z podanym identyfikatorem\n" "reply - odpowiada na ostatni wpis użytkownika\n" "join - dołącza do grupy\n" -"login - uzyskuje odnośnik do logowania do interfejsu WWW\n" +"login - pobiera odnośnik do zalogowania się do interfejsu WWW\n" "drop - opuszcza grupę\n" -"stats - uzyskuje statystyki\n" +"stats - pobiera statystyki\n" "stop - to samo co \"off\"\n" "quit - to samo co \"off\"\n" "sub - to samo co \"follow\"\n" "unsub - to samo co \"leave\"\n" "last - to samo co \"get\"\n" -"on - jeszcze nie zaimplementowano.\n" -"off - jeszcze nie zaimplementowano.\n" -"nudge - przypomina użytkownikowi o aktualizacji.\n" -"invite - jeszcze nie zaimplementowano.\n" -"track - jeszcze nie zaimplementowano.\n" -"untrack - jeszcze nie zaimplementowano.\n" -"track off - jeszcze nie zaimplementowano.\n" -"untrack all - jeszcze nie zaimplementowano.\n" -"tracks - jeszcze nie zaimplementowano.\n" -"tracking - jeszcze nie zaimplementowano.\n" +"on - jeszcze nie zaimplementowano\n" +"off - jeszcze nie zaimplementowano\n" +"nudge - przypomina użytkownikowi o aktualizacji\n" +"invite - jeszcze nie zaimplementowano\n" +"track - jeszcze nie zaimplementowano\n" +"untrack - jeszcze nie zaimplementowano\n" +"track off - jeszcze nie zaimplementowano\n" +"untrack all - jeszcze nie zaimplementowano\n" +"tracks - jeszcze nie zaimplementowano\n" +"tracking - jeszcze nie zaimplementowano\n" #: lib/common.php:199 msgid "No configuration file found. " @@ -5243,6 +5254,14 @@ msgstr "Załącz" msgid "Attach a file" msgstr "Załącz plik" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index 92f7def37..ee22197e2 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:09+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:26+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -197,11 +197,11 @@ msgstr "Não foi possível actualizar o seu design." msgid "You cannot block yourself!" msgstr "Os utilizadores não podem bloquear-se a si próprios!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Bloqueio do utilizador falhou." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Desbloqueio do utilizador falhou." @@ -315,31 +315,31 @@ msgid "Could not find target user." msgstr "Não foi possível encontrar o utilizador de destino." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Alcunha só deve conter letras minúsculas e números. Sem espaços." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Alcunha já é usada. Tente outra." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Alcunha não é válida." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Página de acolhimento não é uma URL válida." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Nome completo demasiado longo (máx. 255 caracteres)." @@ -350,7 +350,7 @@ msgid "Description is too long (max %d chars)." msgstr "Descrição demasiado longa (máx. 140 caracteres)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Localidade demasiado longa (máx. 255 caracteres)." @@ -465,7 +465,7 @@ msgstr "Demasiado longo. Tamanho máx. das notas é %d caracteres." msgid "Not found" msgstr "Não encontrado" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Tamanho máx. das notas é %d caracteres, incluíndo a URL do anexo." @@ -607,13 +607,13 @@ msgid "Crop" msgstr "Cortar" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -687,7 +687,7 @@ msgstr "Sim" msgid "Block this user" msgstr "Bloquear este utilizador" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Não foi possível gravar informação do bloqueio." @@ -759,7 +759,7 @@ msgstr "Esse endereço já tinha sido confirmado." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Não foi possível actualizar o utilizador." @@ -960,7 +960,7 @@ msgstr "Repor predefinição" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1464,7 +1464,7 @@ msgstr "Membros do grupo %s, página %d" msgid "A list of the users in this group." msgstr "Uma lista dos utilizadores neste grupo." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" @@ -1562,7 +1562,7 @@ msgstr "Só um administrador pode desbloquear membros de um grupo." msgid "User is not blocked from group." msgstr "Acesso do utilizador ao grupo não foi bloqueado." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Erro ao remover o bloqueio." @@ -1870,7 +1870,7 @@ msgstr "Nome de utilizador ou palavra-passe incorrectos." msgid "Error setting user. You are probably not authorized." msgstr "Erro ao preparar o utilizador. Provavelmente não está autorizado." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Entrar" @@ -1983,7 +1983,7 @@ msgstr "Mensagem enviada" msgid "Direct message to %s sent" msgstr "Mensagem directa para %s enviada" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Erro do Ajax" @@ -1991,7 +1991,7 @@ msgstr "Erro do Ajax" msgid "New notice" msgstr "Nota nova" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Nota publicada" @@ -2423,72 +2423,81 @@ msgstr "Localidade" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Onde está, por ex. \"Cidade, Região, País\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Categorias" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Categorias para si (letras, números, -, ., _), separadas por vírgulas ou " "espaços" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Língua" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Língua preferida" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Fuso horário" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Em que fuso horário se encontra normalmente?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Subscrever automaticamente quem me subscreva (óptimo para seres não-humanos)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Biografia demasiado extensa (máx. %d caracteres)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Fuso horário não foi seleccionado." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Língua é demasiado extensa (máx. 50 caracteres)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Categoria inválida: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Não foi possível actualizar o utilizador para subscrição automática." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Não foi possível gravar as categorias." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Não foi possível gravar o perfil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Não foi possível gravar as categorias." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Configurações gravadas." @@ -2740,7 +2749,7 @@ msgstr "Desculpe, código de convite inválido." msgid "Registration successful" msgstr "Registo efectuado" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registar" @@ -4081,16 +4090,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Está proibido de publicar notas neste site." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problema na gravação da nota." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Ocorreu um erro na base de dados ao inserir a resposta: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4145,128 +4154,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Página sem título" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Navegação primária deste site" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Início" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e notas dos amigos" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Conta" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Altere o seu endereço electrónico, avatar, palavra-chave, perfil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Ligar" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Ligar aos serviços" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Alterar a configuração do site" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Convidar" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Convidar amigos e colegas para se juntarem a si em %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Sair" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Terminar esta sessão" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Criar uma conta" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Iniciar uma sessão" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Ajuda" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Ajudem-me!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Pesquisa" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Procurar pessoas ou pesquisar texto" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Aviso do site" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Vistas locais" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Aviso da página" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Navegação secundária deste site" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Sobre" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "Condições do Serviço" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Código" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contacto" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Emblema" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Licença de software do StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4275,12 +4284,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblogues disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblogues. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4291,31 +4300,31 @@ msgstr "" "disponibilizado nos termos da [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licença de conteúdos do site" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Tudo " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licença." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Depois" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Antes" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Ocorreu um problema com a sua chave de sessão." @@ -5249,6 +5258,14 @@ msgstr "Anexar" msgid "Attach a file" msgstr "Anexar um ficheiro" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" @@ -5420,9 +5437,8 @@ msgid "Popular" msgstr "Populares" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Repetir esta nota" +msgstr "Repetir esta nota?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 69329e074..9d9474658 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:12+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:31+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -194,11 +194,11 @@ msgstr "Não foi possível atualizar o usuário." msgid "You cannot block yourself!" msgstr "Não foi possível atualizar o usuário." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Não foi possível bloquear o usuário." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Não foi possível desbloquear o usuário." @@ -314,7 +314,7 @@ msgid "Could not find target user." msgstr "Não foi possível encontrar usuário alvo." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -322,25 +322,25 @@ msgstr "" "acentuação e espaços." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Este apelido já está em uso. Tente outro." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Não é um apelido válido." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "A URL do site informada não é válida." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "O nome completo é muito extenso (máx. 255 caracteres)" @@ -351,7 +351,7 @@ msgid "Description is too long (max %d chars)." msgstr "Descrição muito extensa (máximo 140 caracteres)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "A localização é muito extensa (máx. 255 caracteres)." @@ -468,7 +468,7 @@ msgstr "Está muito extenso. O tamanho máximo é de 140 caracteres." msgid "Not found" msgstr "Não encontrado" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -612,13 +612,13 @@ msgid "Crop" msgstr "Cortar" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -691,7 +691,7 @@ msgstr "Sim" msgid "Block this user" msgstr "Bloquear usuário" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Não foi possível salvar a informação de bloqueio." @@ -764,7 +764,7 @@ msgstr "Esse endereço já foi confirmado." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Não foi possível atualizar o usuário." @@ -980,7 +980,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1494,7 +1494,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Admin" @@ -1590,7 +1590,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "O usuário bloqueou você." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Erro na remoção do bloqueio." @@ -1909,7 +1909,7 @@ msgstr "Nome de usuário e/ou senha incorreto(s)." msgid "Error setting user. You are probably not authorized." msgstr "Não autorizado." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Logar" @@ -2027,7 +2027,7 @@ msgstr "Nova mensagem" msgid "Direct message to %s sent" msgstr "A mensagem direta para %s foi enviada" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Erro no Ajax" @@ -2035,7 +2035,7 @@ msgstr "Erro no Ajax" msgid "New notice" msgstr "Nova mensagem" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Mensagem publicada" @@ -2478,71 +2478,80 @@ msgstr "Localização" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Onde você está, ex: \"cidade, estado (ou região), país\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Tags" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Suas etiquetas (letras, números, -, ., e _), separadas por vírgulas ou " "espaços" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Idioma" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Idioma preferencial" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Fuso horário" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Em que fuso horário você normalmente está?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "Assinar automaticamente à quem me assinar" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Descrição muito extensa (máximo 140 caracteres)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "O fuso horário não foi selecionado." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "O nome do idioma é muito extenso (máx. 50 caracteres)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Etiqueta inválida: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Não foi possível atualizar o usuário para assinar automaticamente." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Não foi possível salvar as etiquetas." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Não foi possível salvar o perfil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Não foi possível salvar as etiquetas." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "As configurações foram salvas." @@ -2784,7 +2793,7 @@ msgstr "Erro com o código de confirmação." msgid "Registration successful" msgstr "Registro realizado com sucesso" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrar" @@ -4128,16 +4137,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Você foi banido de publicar mensagens nesse site." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problema ao salvar a mensagem." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Erro no banco de dados na inserção da reposta: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4194,134 +4203,134 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Página sem título" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Navegação primária no site" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Início" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Perfil pessoal e mensagens dos amigos" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Conta" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Alterar email, avatar, senha, perfil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Conectar" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Não foi possível redirecionar para o servidor: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Navegação primária no site" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Convidar" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Convide seus amigos e colegas para unir-se a você no %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Sair" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Sair deste site" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Criar uma nova conta" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Entrar" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Ajuda" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Ajuda" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Procurar" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Pesquisar por pessoa ou texto" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Nova mensagem" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Nova mensagem" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Navegação pelas assinaturas" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Sobre" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Privacidade" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Fonte" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Contato" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "Chamar a atenção" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4330,12 +4339,12 @@ msgstr "" "**%%site.name%%** é um serviço de microblogagem disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** é um serviço de microblogagem. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4346,33 +4355,33 @@ msgstr "" "net/), versão %s, disponível sob a [GNU Affero General Public License] " "(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Procure no conteúdo das mensagens" -#: lib/action.php:799 +#: lib/action.php:800 #, fuzzy msgid "All " msgstr "Todas" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licença" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Paginação" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Próximo" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Anterior" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" "Ocorreu um problema com o seu token de sessão. Tente novamente, por favor." @@ -5213,6 +5222,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index bcfc757be..a03404bef 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:15+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:34+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -198,11 +198,11 @@ msgstr "Не удаётся обновить ваше оформление." msgid "You cannot block yourself!" msgstr "Вы не можете заблокировать самого себя!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Неудача при блокировке пользователя." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Неудача при разблокировке пользователя." @@ -320,32 +320,32 @@ msgid "Could not find target user." msgstr "Не удаётся найти целевого пользователя." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" "Имя должно состоять только из прописных букв и цифр и не иметь пробелов." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Такое имя уже используется. Попробуйте какое-нибудь другое." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Неверное имя." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "URL Главной страницы неверен." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Полное имя слишком длинное (не больше 255 знаков)." @@ -356,7 +356,7 @@ msgid "Description is too long (max %d chars)." msgstr "Слишком длинное описание (максимум %d символов)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Слишком длинное месторасположение (максимум 255 знаков)." @@ -471,7 +471,7 @@ msgstr "Слишком длинная запись. Максимальная д msgid "Not found" msgstr "Не найдено" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Максимальная длина записи — %d символов, включая URL вложения." @@ -614,13 +614,13 @@ msgid "Crop" msgstr "Обрезать" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -693,7 +693,7 @@ msgstr "Да" msgid "Block this user" msgstr "Заблокировать пользователя." -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Не удаётся сохранить информацию о блокировании." @@ -765,7 +765,7 @@ msgstr "Этот адрес уже подтверждён." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Не удаётся обновить пользователя." @@ -965,7 +965,7 @@ msgstr "Восстановить значения по умолчанию" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1475,7 +1475,7 @@ msgstr "Участники группы %s, страница %d" msgid "A list of the users in this group." msgstr "Список пользователей, являющихся членами этой группы." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Настройки" @@ -1573,7 +1573,7 @@ msgstr "Только администратор может разблокиро msgid "User is not blocked from group." msgstr "Пользователь не заблокировал вас из группы." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Ошибка при удалении данного блока." @@ -1882,7 +1882,7 @@ msgstr "Некорректное имя или пароль." msgid "Error setting user. You are probably not authorized." msgstr "Ошибка установки пользователя. Вы, вероятно, не авторизованы." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Вход" @@ -1994,7 +1994,7 @@ msgstr "Сообщение отправлено" msgid "Direct message to %s sent" msgstr "Прямое сообщение для %s послано" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ошибка AJAX" @@ -2002,7 +2002,7 @@ msgstr "Ошибка AJAX" msgid "New notice" msgstr "Новая запись" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Запись опубликована" @@ -2433,71 +2433,80 @@ msgstr "Месторасположение" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Где вы находитесь, например «Город, область, страна»" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Теги" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Теги для самого себя (буквы, цифры, -, ., и _), разделенные запятой или " "пробелом" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Язык" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Предпочитаемый язык" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Часовой пояс" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "В каком часовом поясе Вы обычно находитесь?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "Автоматически подписываться на всех, кто подписался на меня" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Слишком длинная биография (максимум %d символов)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Часовой пояс не выбран." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Слишком длинный язык (более 50 символов). " -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Неверный тег: «%s»" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Не удаётся обновить пользователя для автоподписки." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Не удаётся сохранить теги." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Не удаётся сохранить профиль." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Не удаётся сохранить теги." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Настройки сохранены." @@ -2742,7 +2751,7 @@ msgstr "Извините, неверный пригласительный код msgid "Registration successful" msgstr "Регистрация успешна!" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Регистрация" @@ -4088,16 +4097,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Вам запрещено поститься на этом сайте (бан)" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Проблемы с сохранением записи." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Ошибка баз данных при вставке ответа для %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4152,128 +4161,128 @@ msgstr "%s (%s)" msgid "Untitled page" msgstr "Страница без названия" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Главная навигация" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Моё" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Личный профиль и лента друзей" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Настройки" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Изменить ваш email, аватару, пароль, профиль" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Соединить" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Соединить с сервисами" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Изменить конфигурацию сайта" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Пригласить" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Пригласи друзей и коллег стать такими же как ты участниками %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Выход" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Выйти" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Создать новый аккаунт" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Войти" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Помощь" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Помощь" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Поиск" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Искать людей или текст" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Новая запись" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Локальные виды" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Новая запись" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Навигация по подпискам" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "О проекте" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "ЧаВо" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "TOS" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Пользовательское соглашение" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Исходный код" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Контактная информация" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Бедж" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNet лицензия" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4282,12 +4291,12 @@ msgstr "" "**%%site.name%%** — это сервис микроблогинга, созданный для вас при помощи [%" "%site.broughtby%%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — сервис микроблогинга. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4299,31 +4308,31 @@ msgstr "" "лицензией [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Лицензия содержимого сайта" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "All " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "license." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Разбиение на страницы" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Сюда" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Туда" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Проблема с Вашей сессией. Попробуйте ещё раз, пожалуйста." @@ -4933,7 +4942,7 @@ msgstr "" #: lib/mail.php:236 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s сейчас слушает ваши заметки на %2$s." +msgstr "%1$s теперь следит за вашими записями на %2$s." #: lib/mail.php:241 #, php-format @@ -5258,6 +5267,14 @@ msgstr "Прикрепить" msgid "Attach a file" msgstr "Прикрепить файл" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/statusnet.po b/locale/statusnet.po index 3b094b0a6..114d8ba6e 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-28 08:09+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -184,11 +184,11 @@ msgstr "" msgid "You cannot block yourself!" msgstr "" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -300,31 +300,31 @@ msgid "Could not find target user." msgstr "" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "" #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "" @@ -335,7 +335,7 @@ msgid "Description is too long (max %d chars)." msgstr "" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "" @@ -450,7 +450,7 @@ msgstr "" msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -592,13 +592,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -668,7 +668,7 @@ msgstr "" msgid "Block this user" msgstr "" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -740,7 +740,7 @@ msgstr "" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "" @@ -934,7 +934,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1416,7 +1416,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1503,7 +1503,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "" @@ -1768,7 +1768,7 @@ msgstr "" msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "" @@ -1875,7 +1875,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1883,7 +1883,7 @@ msgstr "" msgid "New notice" msgstr "" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "" @@ -2300,69 +2300,77 @@ msgstr "" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +msgid "Couldn't save location prefs." +msgstr "" + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "" -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "" -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "" @@ -2591,7 +2599,7 @@ msgstr "" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3825,16 +3833,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -3889,140 +3897,140 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4030,31 +4038,31 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -4851,6 +4859,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index 34606dc9d..993989074 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:18+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:38+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -196,11 +196,11 @@ msgstr "Kunde inte uppdatera din profils utseende." msgid "You cannot block yourself!" msgstr "Du kan inte blockera dig själv!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Blockering av användare misslyckades." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Hävning av blockering av användare misslyckades." @@ -312,32 +312,32 @@ msgid "Could not find target user." msgstr "" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" "Smeknamnet får endast innehålla små bokstäver eller siffror, inga mellanslag." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Smeknamnet används redan. Försök med ett annat." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Inte ett giltigt smeknamn." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Hemsida är inte en giltig URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Fullständigt namn är för långt (max 255 tecken)." @@ -348,7 +348,7 @@ msgid "Description is too long (max %d chars)." msgstr "Beskrivning är för lång (max 140 tecken)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Beskrivning av plats är för lång (max 255 tecken)." @@ -463,7 +463,7 @@ msgstr "Det är för långt. Maximal notisstorlek är %d tecken." msgid "Not found" msgstr "Hittades inte" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "Maximal notisstorlek är %d tecken, inklusive bilage-URL." @@ -606,13 +606,13 @@ msgid "Crop" msgstr "Beskär" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -685,7 +685,7 @@ msgstr "Ja" msgid "Block this user" msgstr "Blockera denna användare" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Misslyckades att spara blockeringsinformation." @@ -758,7 +758,7 @@ msgstr "Denna adress har redan blivit bekräftad." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Kunde inte uppdatera användare." @@ -958,7 +958,7 @@ msgstr "Återställ till standardvärde" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1456,7 +1456,7 @@ msgstr "%s gruppmedlemmar, sida %d" msgid "A list of the users in this group." msgstr "En lista av användarna i denna grupp." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Administratör" @@ -1555,7 +1555,7 @@ msgstr "Bara en administratör kan häva blockering av gruppmedlemmar." msgid "User is not blocked from group." msgstr "Användare är inte blockerad från grupp." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Fel vid hävning av blockering." @@ -1837,7 +1837,7 @@ msgstr "Felaktigt användarnamn eller lösenord." msgid "Error setting user. You are probably not authorized." msgstr "Fel vid inställning av användare. Du har sannolikt inte tillstånd." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Logga in" @@ -1950,7 +1950,7 @@ msgstr "Meddelande skickat" msgid "Direct message to %s sent" msgstr "Direktmeddelande till %s skickat" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "AJAX-fel" @@ -1958,7 +1958,7 @@ msgstr "AJAX-fel" msgid "New notice" msgstr "Ny notis" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Notis postad" @@ -2387,72 +2387,81 @@ msgstr "Plats" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Var du håller till, såsom \"Stad, Län, Land\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Taggar" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Taggar för dig själv (bokstäver, nummer, -, ., och _), separerade med " "kommatecken eller mellanslag" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Språk" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Föredraget språk" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Tidszon" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "I vilken tidszon befinner du dig normalt?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Prenumerera automatiskt på den prenumererar på mig (bäst för icke-människa) " -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Biografin är för lång (max %d tecken)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Tidszon inte valt." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Språknamn är för långt (max 50 tecken)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Ogiltig tagg: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Kunde inte uppdatera användaren för automatisk prenumeration." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Kunde inte spara taggar." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Kunde inte spara profil." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Kunde inte spara taggar." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Inställningar sparade." @@ -2699,7 +2708,7 @@ msgstr "Ledsen, ogiltig inbjudningskod." msgid "Registration successful" msgstr "Registreringen genomförd" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Registrera" @@ -4018,16 +4027,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Du är utestängd från att posta notiser på denna webbplats." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Problem med att spara notis." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Databasfel vid infogning av svar: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4082,128 +4091,128 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "Namnlös sida" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Primär webbplatsnavigation" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Hem" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Personlig profil och vänners tidslinje" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Konto" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Ändra din e-post, avatar, lösenord, profil" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Anslut" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "Anslut till tjänster" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Ändra webbplatskonfiguration" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Bjud in" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Bjud in vänner och kollegor att gå med dig på %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Logga ut" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Logga ut från webbplatsen" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Skapa ett konto" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Logga in på webbplatsen" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Hjälp" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Hjälp mig!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Sök" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Sök efter personer eller text" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Webbplatsnotis" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Lokala vyer" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Sidnotis" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Sekundär webbplatsnavigation" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Om" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "Frågor & svar" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "Användarvillkor" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Sekretess" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Källa" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Kontakt" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Emblem" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Programvarulicens för StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4212,12 +4221,12 @@ msgstr "" "**%%site.name%%** är en mikrobloggtjänst tillhandahållen av [%%site.broughtby" "%%](%%site.broughtbyurl%%)" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** är en mikrobloggtjänst." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4228,31 +4237,31 @@ msgstr "" "version %s, tillgänglig under [GNU Affero General Public License](http://www." "fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Licens för webbplatsinnehåll" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Alla " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "licens." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Numrering av sidor" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Senare" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Tidigare" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Det var ett problem med din sessions-token." @@ -5072,6 +5081,14 @@ msgstr "Bifoga" msgid "Attach a file" msgstr "Bifoga en fil" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index c7b7aec8e..25b649cf9 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:21+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:41+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -190,11 +190,11 @@ msgstr "వాడుకరిని తాజాకరించలేకున msgid "You cannot block yourself!" msgstr "మిమ్మల్ని మీరే నిరోధించుకోలేరు!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "వాడుకరి నిరోధం విఫలమైంది." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -308,31 +308,31 @@ msgid "Could not find target user." msgstr "లక్ష్యిత వాడుకరిని కనుగొనలేకపోయాం." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "పేరులో చిన్నబడి అక్షరాలు మరియు అంకెలు మాత్రమే ఖాళీలు లేకుండా ఉండాలి." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "ఆ పేరుని ఇప్పటికే వాడుతున్నారు. మరోటి ప్రయత్నించండి." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "సరైన పేరు కాదు." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "హోమ్ పేజీ URL సరైనది కాదు." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "పూర్తి పేరు చాలా పెద్దగా ఉంది (గరిష్ఠంగా 255 అక్షరాలు)." @@ -343,7 +343,7 @@ msgid "Description is too long (max %d chars)." msgstr "వివరణ చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "ప్రాంతం పేరు మరీ పెద్దగా ఉంది (255 అక్షరాలు గరిష్ఠం)." @@ -460,7 +460,7 @@ msgstr "అది చాలా పొడవుంది. గరిష్ఠ న msgid "Not found" msgstr "దొరకలేదు" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "గరిష్ఠ నోటీసు పొడవు %d అక్షరాలు, జోడింపు URLని కలుపుకుని." @@ -603,13 +603,13 @@ msgid "Crop" msgstr "కత్తిరించు" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -679,7 +679,7 @@ msgstr "అవును" msgid "Block this user" msgstr "ఈ వాడుకరిని నిరోధించు" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "నిరోధపు సమాచారాన్ని భద్రపరచడంలో విఫలమయ్యాం." @@ -754,7 +754,7 @@ msgstr "ఆ చిరునామా ఇప్పటికే నిర్ధా #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "వాడుకరిని తాజాకరించలేకున్నాం." @@ -950,7 +950,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1410,16 +1410,15 @@ msgstr "మీ గుంపుకి మీరు ఒక చిహ్నాన #: actions/grouplogo.php:362 msgid "Pick a square area of the image to be the logo." -msgstr "" +msgstr "చిహ్నంగా ఉండాల్సిన చతురస్త్ర ప్రదేశాన్ని బొమ్మ నుండి ఎంచుకోండి." #: actions/grouplogo.php:396 msgid "Logo updated." msgstr "చిహ్నాన్ని తాజాకరించాం." #: actions/grouplogo.php:398 -#, fuzzy msgid "Failed updating logo." -msgstr "అవతారపు తాజాకరణ విఫలమైంది." +msgstr "చిహ్నపు తాజాకరణ విఫలమైంది." #: actions/groupmembers.php:93 lib/groupnav.php:92 #, php-format @@ -1435,7 +1434,7 @@ msgstr "%s గుంపు సభ్యులు, పేజీ %d" msgid "A list of the users in this group." msgstr "ఈ గుంపులో వాడుకరులు జాబితా." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1525,7 +1524,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "వాడుకరిని గుంపు నుండి నిరోధించలేదు." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "నిరోధాన్ని తొలగించడంలో పొరపాటు." @@ -1791,7 +1790,7 @@ msgstr "వాడుకరిపేరు లేదా సంకేతపదం msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "ప్రవేశించండి" @@ -1901,7 +1900,7 @@ msgstr "సందేశాన్ని పంపించాం" msgid "Direct message to %s sent" msgstr "%sకి నేరు సందేశాన్ని పంపించాం" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "అజాక్స్ పొరపాటు" @@ -1909,7 +1908,7 @@ msgstr "అజాక్స్ పొరపాటు" msgid "New notice" msgstr "కొత్త సందేశం" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "సందేశాలు" @@ -2342,69 +2341,78 @@ msgstr "ప్రాంతం" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "మీరు ఎక్కడ నుండి, \"నగరం, రాష్ట్రం (లేదా ప్రాంతం), దేశం\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "ట్యాగులు" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "భాష" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "ప్రాథాన్యతా భాష" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "కాలమండలం" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "మీరు సామాన్యంగా ఉండే కాలమండలం ఏది?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "స్వపరిచయం చాలా పెద్దగా ఉంది (%d అక్షరాలు గరిష్ఠం)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "కాలమండలాన్ని ఎంచుకోలేదు." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "భాష మరీ పెద్దగా ఉంది (50 అక్షరాలు గరిష్ఠం)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "'%s' అనే హోమ్ పేజీ సరైనదికాదు" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "ట్యాగులని భద్రపరచలేకున్నాం." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "ప్రొఫైలుని భద్రపరచలేకున్నాం." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "ట్యాగులని భద్రపరచలేకున్నాం." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "అమరికలు భద్రమయ్యాయి." @@ -2638,7 +2646,7 @@ msgstr "క్షమించండి, తప్పు ఆహ్వాన స msgid "Registration successful" msgstr "నమోదు విజయవంతం" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "నమోదు" @@ -3291,7 +3299,7 @@ msgstr "" #: actions/siteadminpanel.php:353 msgid "Frequency" -msgstr "" +msgstr "తరచుదనం" #: actions/siteadminpanel.php:354 msgid "Snapshots will be sent once every N web hits" @@ -3901,16 +3909,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "ఈ సైటులో నోటీసులు రాయడం నుండి మిమ్మల్ని నిషేధించారు." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "సందేశాన్ని భద్రపరచడంలో పొరపాటు." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -3967,132 +3975,132 @@ msgstr "%s - %s" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "ముంగిలి" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "ఖాతా" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "మీ ఈమెయిలు, అవతారం, సంకేతపదం మరియు ప్రౌఫైళ్ళను మార్చుకోండి" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "అనుసంధానించు" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "చందాలు" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "ఆహ్వానించు" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "నిష్క్రమించు" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "సైటు నుండి నిష్క్రమించు" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "కొత్త ఖాతా సృష్టించు" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "సైటులోని ప్రవేశించు" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "సహాయం" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "సహాయం కావాలి!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "వెతుకు" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "కొత్త సందేశం" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "స్థానిక వీక్షణలు" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "కొత్త సందేశం" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "చందాలు" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "గురించి" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "ప్రశ్నలు" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "సేవా నియమాలు" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "అంతరంగికత" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "మూలము" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "సంప్రదించు" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "బాడ్జి" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4101,12 +4109,12 @@ msgstr "" "**%%site.name%%** అనేది [%%site.broughtby%%](%%site.broughtbyurl%%) వారు " "అందిస్తున్న మైక్రో బ్లాగింగు సదుపాయం. " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** అనేది మైక్రో బ్లాగింగు సదుపాయం." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4117,38 +4125,38 @@ msgstr "" "html) కింద లభ్యమయ్యే [స్టేటస్‌నెట్](http://status.net/) మైక్రోబ్లాగింగ్ ఉపకరణం సంచిక %s " "పై నడుస్తుంది." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "కొత్త సందేశం" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "అన్నీ " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "పేజీకరణ" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "తర్వాత" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "ఇంతక్రితం" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" #: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." -msgstr "" +msgstr "ఈ సైటుకి మీరు మార్పులు చేయలేరు." #: lib/adminpanelaction.php:195 msgid "showForm() not implemented." @@ -4961,6 +4969,14 @@ msgstr "జోడించు" msgid "Attach a file" msgstr "ఒక ఫైలుని జోడించు" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 402ca048d..9c8df065d 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:24+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:44+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -193,11 +193,11 @@ msgstr "Kullanıcı güncellenemedi." msgid "You cannot block yourself!" msgstr "Kullanıcı güncellenemedi." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -313,7 +313,7 @@ msgid "Could not find target user." msgstr "Kullanıcı güncellenemedi." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -321,25 +321,25 @@ msgstr "" "kullanılamaz. " #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Takma ad kullanımda. Başka bir tane deneyin." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Geçersiz bir takma ad." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Başlangıç sayfası adresi geçerli bir URL değil." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Tam isim çok uzun (azm: 255 karakter)." @@ -350,7 +350,7 @@ msgid "Description is too long (max %d chars)." msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Yer bilgisi çok uzun (azm: 255 karakter)." @@ -472,7 +472,7 @@ msgstr "" msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -618,13 +618,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -699,7 +699,7 @@ msgstr "" msgid "Block this user" msgstr "Böyle bir kullanıcı yok." -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -775,7 +775,7 @@ msgstr "O adres daha önce onaylanmış." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Kullanıcı güncellenemedi." @@ -984,7 +984,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1488,7 +1488,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1582,7 +1582,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "Kullanıcının profili yok." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Kullanıcıyı kaydetmede hata oluştu." @@ -1862,7 +1862,7 @@ msgstr "Yanlış kullanıcı adı veya parola." msgid "Error setting user. You are probably not authorized." msgstr "Yetkilendirilmemiş." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Giriş" @@ -1975,7 +1975,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1983,7 +1983,7 @@ msgstr "" msgid "New notice" msgstr "Yeni durum mesajı" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "Durum mesajları" @@ -2427,70 +2427,79 @@ msgstr "Yer" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Bulunduğunuz yer, \"Şehir, Eyalet (veya Bölge), Ülke\" gibi" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Hakkında bölümü çok uzun (azm 140 karakter)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "%s Geçersiz başlangıç sayfası" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Profil kaydedilemedi." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Profil kaydedilemedi." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "Profil kaydedilemedi." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Ayarlar kaydedildi." @@ -2726,7 +2735,7 @@ msgstr "Onay kodu hatası." msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Kayıt" @@ -4017,16 +4026,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Durum mesajını kaydederken hata oluştu." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Cevap eklenirken veritabanı hatası: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4085,136 +4094,136 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Başlangıç" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "Hakkında" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Bağlan" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Sunucuya yönlendirme yapılamadı: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Abonelikler" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Çıkış" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "Yeni hesap oluştur" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Yardım" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "Yardım" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Ara" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Yeni durum mesajı" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Yeni durum mesajı" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Abonelikler" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Hakkında" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "SSS" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Gizlilik" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Kaynak" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "İletişim" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4223,12 +4232,12 @@ msgstr "" "**%%site.name%%** [%%site.broughtby%%](%%site.broughtbyurl%%)\" tarafından " "hazırlanan anında mesajlaşma ağıdır. " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** bir aninda mesajlaşma sosyal ağıdır." -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4239,34 +4248,34 @@ msgstr "" "licenses/agpl-3.0.html) lisansı ile korunan [StatusNet](http://status.net/) " "microbloglama yazılımının %s. versiyonunu kullanmaktadır." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Yeni durum mesajı" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "« Sonra" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "Önce »" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5096,6 +5105,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 32c26de54..587487404 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:27+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:47+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -198,11 +198,11 @@ msgstr "Не вдалося оновити Ваш дизайн." msgid "You cannot block yourself!" msgstr "Ви не можете блокувати самого себе!" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "Спроба заблокувати користувача невдала." -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "Спроба розблокувати користувача невдала." @@ -315,7 +315,7 @@ msgid "Could not find target user." msgstr "Не вдалося знайти цільового користувача." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" @@ -323,25 +323,25 @@ msgstr "" "інтервалів." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Це ім’я вже використовується. Спробуйте інше." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Це недійсне ім’я користувача." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Веб-сторінка має недійсну URL-адресу." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Повне ім’я задовге (255 знаків максимум)" @@ -352,7 +352,7 @@ msgid "Description is too long (max %d chars)." msgstr "Опис надто довгий (%d знаків максимум)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Локація надто довга (255 знаків максимум)." @@ -467,7 +467,7 @@ msgstr "Надто довго. Максимальний розмір допис msgid "Not found" msgstr "Не знайдено" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -611,13 +611,13 @@ msgid "Crop" msgstr "Втяти" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -691,7 +691,7 @@ msgstr "Так" msgid "Block this user" msgstr "Блокувати користувача" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "Збереження інформації про блокування завершилось невдачею." @@ -763,7 +763,7 @@ msgstr "Цю адресу вже було підтверджено." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Не вдалося оновити користувача." @@ -962,7 +962,7 @@ msgstr "Повернутись до початкових налаштувань" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1460,7 +1460,7 @@ msgstr "Учасники групи %s, сторінка %d" msgid "A list of the users in this group." msgstr "Список учасників цієї групи." -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "Адмін" @@ -1559,7 +1559,7 @@ msgstr "Лише адміни можуть розблокувати членів msgid "User is not blocked from group." msgstr "Користувача не блоковано." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." msgstr "Помилка при розблокуванні." @@ -1869,7 +1869,7 @@ msgstr "Неточне ім’я або пароль." msgid "Error setting user. You are probably not authorized." msgstr "Помилка. Можливо, Ви не авторизовані." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Увійти" @@ -1984,7 +1984,7 @@ msgstr "Повідомлення надіслано" msgid "Direct message to %s sent" msgstr "Пряме повідомлення до %s надіслано" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Помилка в Ajax" @@ -1992,7 +1992,7 @@ msgstr "Помилка в Ajax" msgid "New notice" msgstr "Новий допис" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "Допис надіслано" @@ -2424,72 +2424,81 @@ msgstr "Локація" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Де Ви живете, штибу \"Місто, область (регіон), країна\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Теґи" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" "Позначте себе теґами (літери, цифри, -, . та _), відокремлюючи кожен комою " "або пробілом" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Мова" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Мова, котрій надаєте перевагу" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Часовий пояс" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "За яким часовим поясом Ви живете?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" "Автоматично підписуватись до тих, хто підписався до мене. (Слава роботам!)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, php-format msgid "Bio is too long (max %d chars)." msgstr "Ви перевищили ліміт (%d знаків максимум)." -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "Часовий пояс не обрано." -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "Мова задовга (50 знаків максимум)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, php-format msgid "Invalid tag: \"%s\"" msgstr "Недійсний теґ: \"%s\"" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "Не вдалося оновити користувача для автопідписки." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Не вдалося зберегти теґи." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Не вдалося зберегти профіль." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 msgid "Couldn't save tags." msgstr "Не вдалося зберегти теґи." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Налаштування збережено." @@ -2737,7 +2746,7 @@ msgstr "Даруйте, помилка у коді запрошення." msgid "Registration successful" msgstr "Реєстрація успішна" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Реєстрація" @@ -4079,16 +4088,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "Вам заборонено надсилати дописи до цього сайту." -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Проблема при збереженні допису." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Помилка бази даних при додаванні відповіді: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "RT @%1$s %2$s" @@ -4143,128 +4152,128 @@ msgstr "%s — %s" msgid "Untitled page" msgstr "Сторінка без заголовку" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "Відправна навігація по сайту" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Дім" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "Персональний профіль і стрічка друзів" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "Акаунт" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "Змінити електронну адресу, аватару, пароль, профіль" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "З’єднання" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect to services" msgstr "З’єднання з сервісами" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "Змінити конфігурацію сайту" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Запросити" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "Запросіть друзів та колег приєднатись до Вас на %s" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Вийти" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "Вийти з сайту" -#: lib/action.php:455 +#: lib/action.php:456 msgid "Create an account" msgstr "Створити новий акаунт" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "Увійти на сайт" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Допомога" -#: lib/action.php:461 +#: lib/action.php:462 msgid "Help me!" msgstr "Допоможіть!" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Пошук" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "Пошук людей або текстів" -#: lib/action.php:485 +#: lib/action.php:486 msgid "Site notice" msgstr "Зауваження сайту" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "Огляд" -#: lib/action.php:617 +#: lib/action.php:618 msgid "Page notice" msgstr "Зауваження сторінки" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "Другорядна навігація по сайту" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Про" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "ЧаПи" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "Умови" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Конфіденційність" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Джерело" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Контакт" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "Бедж" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "Ліцензія програмного забезпечення StatusNet" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4273,12 +4282,12 @@ msgstr "" "**%%site.name%%** — це сервіс мікроблоґів наданий вам [%%site.broughtby%%](%%" "site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** — це сервіс мікроблоґів. " -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4289,31 +4298,31 @@ msgstr "" "для мікроблоґів, версія %s, доступному під [GNU Affero General Public " "License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 msgid "Site content license" msgstr "Ліцензія змісту сайту" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "Всі " -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "ліцензія." -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "Нумерація сторінок" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "Вперед" -#: lib/action.php:1115 +#: lib/action.php:1116 msgid "Before" msgstr "Назад" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "Виникли певні проблеми з токеном поточної сесії." @@ -5245,6 +5254,14 @@ msgstr "Вкласти" msgid "Attach a file" msgstr "Вкласти файл" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 80dd9617d..ddf60fe0e 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:29+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:50+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -193,11 +193,11 @@ msgstr "Không thể cập nhật thành viên." msgid "You cannot block yourself!" msgstr "Không thể cập nhật thành viên." -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -318,31 +318,31 @@ msgid "Could not find target user." msgstr "Không tìm thấy bất kỳ trạng thái nào." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "Biệt hiệu phải là chữ viết thường hoặc số và không có khoảng trắng." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "Biệt hiệu này đã dùng rồi. Hãy nhập biệt hiệu khác." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "Biệt hiệu không hợp lệ." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "Trang chủ không phải là URL" #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "Tên đầy đủ quá dài (tối đa là 255 ký tự)." @@ -353,7 +353,7 @@ msgid "Description is too long (max %d chars)." msgstr "Lý lịch quá dài (không quá 140 ký tự)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "Tên khu vực quá dài (không quá 255 ký tự)." @@ -474,7 +474,7 @@ msgstr "Quá dài. Tối đa là 140 ký tự." msgid "Not found" msgstr "Không tìm thấy" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -624,13 +624,13 @@ msgid "Crop" msgstr "Nhóm" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -705,7 +705,7 @@ msgstr "Có" msgid "Block this user" msgstr "Ban user" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -780,7 +780,7 @@ msgstr "Địa chỉ đó đã được xác nhận rồi." #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "Không thể cập nhật thành viên." @@ -997,7 +997,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1533,7 +1533,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1629,7 +1629,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "Người dùng không có thông tin." -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "Lỗi xảy ra khi lưu thành viên." @@ -1946,7 +1946,7 @@ msgstr "Sai tên đăng nhập hoặc mật khẩu." msgid "Error setting user. You are probably not authorized." msgstr "Chưa được phép." -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "Đăng nhập" @@ -2062,7 +2062,7 @@ msgstr "Tin mới nhất" msgid "Direct message to %s sent" msgstr "Tin nhắn riêng" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 #, fuzzy msgid "Ajax Error" msgstr "Lỗi" @@ -2071,7 +2071,7 @@ msgstr "Lỗi" msgid "New notice" msgstr "Thông báo mới" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 #, fuzzy msgid "Notice posted" msgstr "Tin đã gửi" @@ -2523,72 +2523,81 @@ msgstr "Thành phố" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "Bạn ở đâu, \"Thành phố, Tỉnh thành, Quốc gia\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "Từ khóa" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "Ngôn ngữ" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "Ngôn ngữ bạn thích" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "Khu vực" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "Khu vực nào bạn thường ở?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "Tự động theo những người nào đăng ký theo tôi" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "Lý lịch quá dài (không quá 140 ký tự)" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 #, fuzzy msgid "Language is too long (max 50 chars)." msgstr "Ngôn ngữ quá dài (tối đa là 50 ký tự)." -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "Trang chủ '%s' không hợp lệ" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 #, fuzzy msgid "Couldn't update user for autosubscribe." msgstr "Không thể cập nhật thành viên." -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "Không thể lưu hồ sơ cá nhân." + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Không thể lưu hồ sơ cá nhân." -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "Không thể lưu hồ sơ cá nhân." -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "Đã lưu các điều chỉnh." @@ -2826,7 +2835,7 @@ msgstr "Lỗi xảy ra với mã xác nhận." msgid "Registration successful" msgstr "Đăng ký thành công" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "Đăng ký" @@ -4169,16 +4178,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "Có lỗi xảy ra khi lưu tin nhắn." -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "Lỗi cơ sở dữ liệu khi chèn trả lời: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%s (%s)" @@ -4238,140 +4247,140 @@ msgstr "%s (%s)" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "Trang chủ" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "Giới thiệu" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Change your email, avatar, password, profile" msgstr "Thay đổi mật khẩu của bạn" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "Kết nối" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "Không thể chuyển đến máy chủ: %s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "Tôi theo" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "Thư mời" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, fuzzy, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" "Điền địa chỉ email và nội dung tin nhắn để gửi thư mời bạn bè và đồng nghiệp " "của bạn tham gia vào dịch vụ này." -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "Thoát" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "Tạo tài khoản mới" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "Hướng dẫn" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "Hướng dẫn" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "Tìm kiếm" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "Thông báo mới" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "Thông báo mới" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "Tôi theo" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "Giới thiệu" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "Riêng tư" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "Nguồn" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "Liên hệ" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "Tin đã gửi" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4380,12 +4389,12 @@ msgstr "" "**%%site.name%%** là dịch vụ gửi tin nhắn được cung cấp từ [%%site.broughtby%" "%](%%site.broughtbyurl%%). " -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** là dịch vụ gửi tin nhắn. " -#: lib/action.php:776 +#: lib/action.php:777 #, fuzzy, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4396,34 +4405,34 @@ msgstr "" "quyền [GNU Affero General Public License](http://www.fsf.org/licensing/" "licenses/agpl-3.0.html)." -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "Tìm theo nội dung của tin nhắn" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "Sau" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "Trước" -#: lib/action.php:1163 +#: lib/action.php:1164 #, fuzzy msgid "There was a problem with your session token." msgstr "Có lỗi xảy ra khi thao tác. Hãy thử lại lần nữa." @@ -5321,6 +5330,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 484166549..90d2a301f 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:32+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:53+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -195,11 +195,11 @@ msgstr "无法更新用户。" msgid "You cannot block yourself!" msgstr "无法更新用户。" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "阻止用户失败。" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "取消阻止用户失败。" @@ -316,31 +316,31 @@ msgid "Could not find target user." msgstr "找不到任何信息。" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "昵称只能使用小写字母和数字,不包含空格。" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "昵称已被使用,换一个吧。" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "不是有效的昵称。" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "主页的URL不正确。" #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "全名过长(不能超过 255 个字符)。" @@ -351,7 +351,7 @@ msgid "Description is too long (max %d chars)." msgstr "描述过长(不能超过140字符)。" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "位置过长(不能超过255个字符)。" @@ -472,7 +472,7 @@ msgstr "超出长度限制。不能超过 140 个字符。" msgid "Not found" msgstr "未找到" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -618,13 +618,13 @@ msgid "Crop" msgstr "剪裁" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -699,7 +699,7 @@ msgstr "是" msgid "Block this user" msgstr "阻止该用户" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "保存阻止信息失败。" @@ -776,7 +776,7 @@ msgstr "此地址已被确认。" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "无法更新用户。" @@ -989,7 +989,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1505,7 +1505,7 @@ msgstr "%s 组成员, 第 %d 页" msgid "A list of the users in this group." msgstr "该组成员列表。" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "admin管理员" @@ -1599,7 +1599,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "用户没有个人信息。" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "保存用户时出错。" @@ -1898,7 +1898,7 @@ msgstr "用户名或密码不正确。" msgid "Error setting user. You are probably not authorized." msgstr "未认证。" -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "登录" @@ -2008,7 +2008,7 @@ msgstr "新消息" msgid "Direct message to %s sent" msgstr "已向 %s 发送消息" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "Ajax错误" @@ -2016,7 +2016,7 @@ msgstr "Ajax错误" msgid "New notice" msgstr "新通告" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "消息已发布。" @@ -2455,70 +2455,79 @@ msgstr "位置" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "你的位置,格式类似\"城市,省份,国家\"" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "标签" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "你的标签 (字母letters, 数字numbers, -, ., 和 _), 以逗号或空格分隔" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "语言" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "首选语言" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "时区" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "您一般处于哪个时区?" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "自动订阅任何订阅我的更新的人(这个选项最适合机器人)" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "自述过长(不能超过140字符)。" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "未选择时区。" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "语言过长(不能超过50个字符)。" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "主页'%s'不正确" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "无法更新用户的自动订阅选项。" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "无法保存个人信息。" + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "无法保存个人信息。" -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "无法保存个人信息。" -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "设置已保存。" @@ -2755,7 +2764,7 @@ msgstr "验证码出错。" msgid "Registration successful" msgstr "注册成功。" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "注册" @@ -4086,16 +4095,16 @@ msgstr "你在短时间里发布了过多的消息,请深呼吸,过几分钟 msgid "You are banned from posting notices on this site." msgstr "在这个网站你被禁止发布消息。" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "保存通告时出错。" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "添加回复时数据库出错:%s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, fuzzy, php-format msgid "RT @%1$s %2$s" msgstr "%1$s (%2$s)" @@ -4152,137 +4161,137 @@ msgstr "%s (%s)" msgid "Untitled page" msgstr "无标题页" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "主站导航" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "主页" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "个人资料及朋友年表" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Account" msgstr "帐号" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Change your email, avatar, password, profile" msgstr "修改资料" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "连接" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "无法重定向到服务器:%s" -#: lib/action.php:440 +#: lib/action.php:441 #, fuzzy msgid "Change site configuration" msgstr "主站导航" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "邀请" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, fuzzy, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "使用这个表单来邀请好友和同事加入。" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "登出" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "登出本站" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "创建新帐号" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "登入本站" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "帮助" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "帮助" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "搜索" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "检索人或文字" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "新通告" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "本地显示" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "新通告" -#: lib/action.php:719 +#: lib/action.php:720 #, fuzzy msgid "Secondary site navigation" msgstr "次项站导航" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "关于" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "常见问题FAQ" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "隐私" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "来源" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "联系人" -#: lib/action.php:741 +#: lib/action.php:742 #, fuzzy msgid "Badge" msgstr "呼叫" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "StatusNet软件注册证" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4291,12 +4300,12 @@ msgstr "" "**%%site.name%%** 是一个微博客服务,提供者为 [%%site.broughtby%%](%%site." "broughtbyurl%%)。" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%** 是一个微博客服务。" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4307,34 +4316,34 @@ msgstr "" "General Public License](http://www.fsf.org/licensing/licenses/agpl-3.0.html)" "授权。" -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "StatusNet软件注册证" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "全部" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "注册证" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "分页" -#: lib/action.php:1107 +#: lib/action.php:1108 #, fuzzy msgid "After" msgstr "« 之后" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "之前 »" -#: lib/action.php:1163 +#: lib/action.php:1164 #, fuzzy msgid "There was a problem with your session token." msgstr "会话标识有问题,请重试。" @@ -5182,6 +5191,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index 95e296d04..fc38ad1fa 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-25 09:42+0000\n" -"PO-Revision-Date: 2009-12-28 08:11:35+0000\n" +"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"PO-Revision-Date: 2009-12-30 19:07:56+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60437); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -192,11 +192,11 @@ msgstr "無法更新使用者" msgid "You cannot block yourself!" msgstr "無法更新使用者" -#: actions/apiblockcreate.php:119 +#: actions/apiblockcreate.php:126 msgid "Block user failed." msgstr "" -#: actions/apiblockdestroy.php:107 +#: actions/apiblockdestroy.php:114 msgid "Unblock user failed." msgstr "" @@ -311,31 +311,31 @@ msgid "Could not find target user." msgstr "無法更新使用者" #: actions/apigroupcreate.php:164 actions/editgroup.php:182 -#: actions/newgroup.php:126 actions/profilesettings.php:208 +#: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "暱稱請用小寫字母或數字,勿加空格。" #: actions/apigroupcreate.php:173 actions/editgroup.php:186 -#: actions/newgroup.php:130 actions/profilesettings.php:231 +#: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." msgstr "此暱稱已有人使用。再試試看別的吧。" #: actions/apigroupcreate.php:180 actions/editgroup.php:189 -#: actions/newgroup.php:133 actions/profilesettings.php:211 +#: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." msgstr "" #: actions/apigroupcreate.php:196 actions/editgroup.php:195 -#: actions/newgroup.php:139 actions/profilesettings.php:215 +#: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." msgstr "個人首頁位址錯誤" #: actions/apigroupcreate.php:205 actions/editgroup.php:198 -#: actions/newgroup.php:142 actions/profilesettings.php:218 +#: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." msgstr "全名過長(最多255字元)" @@ -346,7 +346,7 @@ msgid "Description is too long (max %d chars)." msgstr "自我介紹過長(共140個字元)" #: actions/apigroupcreate.php:224 actions/editgroup.php:204 -#: actions/newgroup.php:148 actions/profilesettings.php:225 +#: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." msgstr "地點過長(共255個字)" @@ -466,7 +466,7 @@ msgstr "" msgid "Not found" msgstr "" -#: actions/apistatusesupdate.php:227 actions/newnotice.php:191 +#: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." msgstr "" @@ -611,13 +611,13 @@ msgid "Crop" msgstr "" #: actions/avatarsettings.php:268 actions/disfavor.php:74 -#: actions/emailsettings.php:238 actions/favor.php:75 +#: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 #: actions/groupblock.php:66 actions/grouplogo.php:309 #: actions/groupunblock.php:66 actions/imsettings.php:206 #: actions/invite.php:56 actions/login.php:135 actions/makeadmin.php:66 #: actions/newmessage.php:135 actions/newnotice.php:103 actions/nudge.php:80 #: actions/othersettings.php:145 actions/passwordsettings.php:138 -#: actions/profilesettings.php:187 actions/recoverpassword.php:337 +#: actions/profilesettings.php:194 actions/recoverpassword.php:337 #: actions/register.php:165 actions/remotesubscribe.php:77 #: actions/repeat.php:83 actions/smssettings.php:228 actions/subedit.php:38 #: actions/subscribe.php:46 actions/tagother.php:166 @@ -692,7 +692,7 @@ msgstr "" msgid "Block this user" msgstr "無此使用者" -#: actions/block.php:162 +#: actions/block.php:167 msgid "Failed to save block information." msgstr "" @@ -768,7 +768,7 @@ msgstr "" #: actions/confirmaddress.php:114 actions/emailsettings.php:296 #: actions/emailsettings.php:427 actions/imsettings.php:258 #: actions/imsettings.php:401 actions/othersettings.php:174 -#: actions/profilesettings.php:276 actions/smssettings.php:278 +#: actions/profilesettings.php:283 actions/smssettings.php:278 #: actions/smssettings.php:420 msgid "Couldn't update user." msgstr "無法更新使用者" @@ -975,7 +975,7 @@ msgstr "" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 -#: actions/pathsadminpanel.php:324 actions/profilesettings.php:167 +#: actions/pathsadminpanel.php:324 actions/profilesettings.php:174 #: actions/siteadminpanel.php:388 actions/smssettings.php:181 #: actions/subscriptions.php:203 actions/tagother.php:154 #: actions/useradminpanel.php:313 lib/designsettings.php:256 @@ -1474,7 +1474,7 @@ msgstr "" msgid "A list of the users in this group." msgstr "" -#: actions/groupmembers.php:175 lib/action.php:440 lib/groupnav.php:107 +#: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" msgstr "" @@ -1563,7 +1563,7 @@ msgstr "" msgid "User is not blocked from group." msgstr "" -#: actions/groupunblock.php:128 actions/unblock.php:77 +#: actions/groupunblock.php:128 actions/unblock.php:86 #, fuzzy msgid "Error removing the block." msgstr "儲存使用者發生錯誤" @@ -1832,7 +1832,7 @@ msgstr "使用者名稱或密碼錯誤" msgid "Error setting user. You are probably not authorized." msgstr "" -#: actions/login.php:208 actions/login.php:261 lib/action.php:458 +#: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" msgstr "登入" @@ -1939,7 +1939,7 @@ msgstr "" msgid "Direct message to %s sent" msgstr "" -#: actions/newmessage.php:210 actions/newnotice.php:250 lib/channel.php:170 +#: actions/newmessage.php:210 actions/newnotice.php:245 lib/channel.php:170 msgid "Ajax Error" msgstr "" @@ -1947,7 +1947,7 @@ msgstr "" msgid "New notice" msgstr "新訊息" -#: actions/newnotice.php:216 +#: actions/newnotice.php:211 msgid "Notice posted" msgstr "" @@ -2375,70 +2375,79 @@ msgstr "地點" msgid "Where you are, like \"City, State (or Region), Country\"" msgstr "" -#: actions/profilesettings.php:138 actions/tagother.php:149 +#: actions/profilesettings.php:138 +msgid "Share my current location when posting notices" +msgstr "" + +#: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" msgstr "" -#: actions/profilesettings.php:140 +#: actions/profilesettings.php:147 msgid "" "Tags for yourself (letters, numbers, -, ., and _), comma- or space- separated" msgstr "" -#: actions/profilesettings.php:144 actions/siteadminpanel.php:294 +#: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" msgstr "" -#: actions/profilesettings.php:145 +#: actions/profilesettings.php:152 msgid "Preferred language" msgstr "" -#: actions/profilesettings.php:154 +#: actions/profilesettings.php:161 msgid "Timezone" msgstr "" -#: actions/profilesettings.php:155 +#: actions/profilesettings.php:162 msgid "What timezone are you normally in?" msgstr "" -#: actions/profilesettings.php:160 +#: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" msgstr "" -#: actions/profilesettings.php:221 actions/register.php:223 +#: actions/profilesettings.php:228 actions/register.php:223 #, fuzzy, php-format msgid "Bio is too long (max %d chars)." msgstr "自我介紹過長(共140個字元)" -#: actions/profilesettings.php:228 actions/siteadminpanel.php:164 +#: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." msgstr "" -#: actions/profilesettings.php:234 +#: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" -#: actions/profilesettings.php:246 actions/tagother.php:178 +#: actions/profilesettings.php:253 actions/tagother.php:178 #, fuzzy, php-format msgid "Invalid tag: \"%s\"" msgstr "個人首頁連結%s無效" -#: actions/profilesettings.php:295 +#: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." msgstr "" -#: actions/profilesettings.php:328 +#: actions/profilesettings.php:354 +#, fuzzy +msgid "Couldn't save location prefs." +msgstr "無法儲存個人資料" + +#: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "無法儲存個人資料" -#: actions/profilesettings.php:336 +#: actions/profilesettings.php:374 #, fuzzy msgid "Couldn't save tags." msgstr "無法儲存個人資料" -#: actions/profilesettings.php:344 lib/adminpanelaction.php:126 +#: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." msgstr "" @@ -2669,7 +2678,7 @@ msgstr "確認碼發生錯誤" msgid "Registration successful" msgstr "" -#: actions/register.php:114 actions/register.php:502 lib/action.php:455 +#: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" msgstr "" @@ -3940,16 +3949,16 @@ msgstr "" msgid "You are banned from posting notices on this site." msgstr "" -#: classes/Notice.php:319 classes/Notice.php:344 +#: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." msgstr "" -#: classes/Notice.php:1044 +#: classes/Notice.php:1034 #, php-format msgid "DB error inserting reply: %s" msgstr "增加回覆時,資料庫發生錯誤: %s" -#: classes/Notice.php:1371 +#: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" msgstr "" @@ -4008,134 +4017,134 @@ msgstr "" msgid "Untitled page" msgstr "" -#: lib/action.php:425 +#: lib/action.php:426 msgid "Primary site navigation" msgstr "" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Home" msgstr "主頁" -#: lib/action.php:431 +#: lib/action.php:432 msgid "Personal profile and friends timeline" msgstr "" -#: lib/action.php:433 +#: lib/action.php:434 #, fuzzy msgid "Account" msgstr "關於" -#: lib/action.php:433 +#: lib/action.php:434 msgid "Change your email, avatar, password, profile" msgstr "" -#: lib/action.php:436 +#: lib/action.php:437 msgid "Connect" msgstr "連結" -#: lib/action.php:436 +#: lib/action.php:437 #, fuzzy msgid "Connect to services" msgstr "無法連結到伺服器:%s" -#: lib/action.php:440 +#: lib/action.php:441 msgid "Change site configuration" msgstr "" -#: lib/action.php:444 lib/subgroupnav.php:105 +#: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" msgstr "" -#: lib/action.php:445 lib/subgroupnav.php:106 +#: lib/action.php:446 lib/subgroupnav.php:106 #, php-format msgid "Invite friends and colleagues to join you on %s" msgstr "" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout" msgstr "登出" -#: lib/action.php:450 +#: lib/action.php:451 msgid "Logout from the site" msgstr "" -#: lib/action.php:455 +#: lib/action.php:456 #, fuzzy msgid "Create an account" msgstr "新增帳號" -#: lib/action.php:458 +#: lib/action.php:459 msgid "Login to the site" msgstr "" -#: lib/action.php:461 lib/action.php:724 +#: lib/action.php:462 lib/action.php:725 msgid "Help" msgstr "求救" -#: lib/action.php:461 +#: lib/action.php:462 #, fuzzy msgid "Help me!" msgstr "求救" -#: lib/action.php:464 lib/searchaction.php:127 +#: lib/action.php:465 lib/searchaction.php:127 msgid "Search" msgstr "" -#: lib/action.php:464 +#: lib/action.php:465 msgid "Search for people or text" msgstr "" -#: lib/action.php:485 +#: lib/action.php:486 #, fuzzy msgid "Site notice" msgstr "新訊息" -#: lib/action.php:551 +#: lib/action.php:552 msgid "Local views" msgstr "" -#: lib/action.php:617 +#: lib/action.php:618 #, fuzzy msgid "Page notice" msgstr "新訊息" -#: lib/action.php:719 +#: lib/action.php:720 msgid "Secondary site navigation" msgstr "" -#: lib/action.php:726 +#: lib/action.php:727 msgid "About" msgstr "關於" -#: lib/action.php:728 +#: lib/action.php:729 msgid "FAQ" msgstr "常見問題" -#: lib/action.php:732 +#: lib/action.php:733 msgid "TOS" msgstr "" -#: lib/action.php:735 +#: lib/action.php:736 msgid "Privacy" msgstr "" -#: lib/action.php:737 +#: lib/action.php:738 msgid "Source" msgstr "" -#: lib/action.php:739 +#: lib/action.php:740 msgid "Contact" msgstr "好友名單" -#: lib/action.php:741 +#: lib/action.php:742 msgid "Badge" msgstr "" -#: lib/action.php:769 +#: lib/action.php:770 msgid "StatusNet software license" msgstr "" -#: lib/action.php:772 +#: lib/action.php:773 #, php-format msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." @@ -4144,12 +4153,12 @@ msgstr "" "**%%site.name%%**是由[%%site.broughtby%%](%%site.broughtbyurl%%)所提供的微型" "部落格服務" -#: lib/action.php:774 +#: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " msgstr "**%%site.name%%**是個微型部落格" -#: lib/action.php:776 +#: lib/action.php:777 #, php-format msgid "" "It runs the [StatusNet](http://status.net/) microblogging software, version %" @@ -4157,33 +4166,33 @@ msgid "" "org/licensing/licenses/agpl-3.0.html)." msgstr "" -#: lib/action.php:790 +#: lib/action.php:791 #, fuzzy msgid "Site content license" msgstr "新訊息" -#: lib/action.php:799 +#: lib/action.php:800 msgid "All " msgstr "" -#: lib/action.php:804 +#: lib/action.php:805 msgid "license." msgstr "" -#: lib/action.php:1098 +#: lib/action.php:1099 msgid "Pagination" msgstr "" -#: lib/action.php:1107 +#: lib/action.php:1108 msgid "After" msgstr "" -#: lib/action.php:1115 +#: lib/action.php:1116 #, fuzzy msgid "Before" msgstr "之前的內容»" -#: lib/action.php:1163 +#: lib/action.php:1164 msgid "There was a problem with your session token." msgstr "" @@ -5005,6 +5014,14 @@ msgstr "" msgid "Attach a file" msgstr "" +#: lib/noticeform.php:225 +msgid "Share your location " +msgstr "" + +#: lib/noticeform.php:226 +msgid "Finding your location..." +msgstr "" + #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -- cgit v1.2.3-54-g00ecf From 024704e0b70cb29107929cc2cce0ddc6b2d2e42b Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Wed, 30 Dec 2009 20:26:23 +0100 Subject: Remove trailing space in checkbox text. --- lib/noticeform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index d85de9c22..76715c35a 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -222,7 +222,7 @@ class NoticeForm extends Form 'value' => _('Send'))); if($this->user->shareLocation()) { $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); - $this->out->checkbox('notice_data-location_enabled',_('Share your location ')); + $this->out->checkbox('notice_data-location_enabled',_('Share your location')); $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); $this->out->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 45dc24689df85b63eaa13173cd9a111b4a5cf237 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 30 Dec 2009 15:09:24 -0800 Subject: temp debug logging hack for subscriber list early cutoff bug - we can see a cut off list at http://identi.ca/petercook/subscribers but haven't been able to explain it. will log a little data on the execution through the list --- lib/profilelist.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/profilelist.php b/lib/profilelist.php index 3412d41d1..ae875ac01 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -86,16 +86,21 @@ class ProfileList extends Widget function showProfiles() { + $log = strtolower(get_class($this)) == 'subscriberslist' && $this->owner->nickname == 'petercook'; $cnt = 0; + if ($log) common_log(LOG_INFO, "subbug: starting with {$this->profile->N}"); while ($this->profile->fetch()) { $cnt++; if($cnt > PROFILES_PER_PAGE) { + if ($log) common_log(LOG_INFO, "subbug: breaking at $cnt"); break; } + if ($log) common_log(LOG_INFO, "subbug: showing at $cnt"); $pli = $this->newListItem($this->profile); $pli->show(); } + if ($log) common_log(LOG_INFO, "subbug: ended at $cnt"); return $cnt; } -- cgit v1.2.3-54-g00ecf From 9218cce3cdc824e2011bcdf250a08ca1698f5ea1 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 30 Dec 2009 15:55:15 -0800 Subject: subbug debug info to check on free ordering --- classes/Memcached_DataObject.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index d8b0db5a6..4efec06ab 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -31,11 +31,20 @@ class Memcached_DataObject extends DB_DataObject function __destruct() { + if (get_class($this) == 'Profile') + common_log(LOG_INFO, 'subbug: destructing result id ' . $this->_DB_resultid); $this->free(); if (method_exists('DB_DataObject', '__destruct')) { parent::__destruct(); } } + + function free() + { + if (get_class($this) == 'Profile') + common_log(LOG_INFO, 'subbug: freeing result id ' . $this->_DB_resultid); + parent::free(); + } function &staticGet($cls, $k, $v=null) { -- cgit v1.2.3-54-g00ecf From 176e0fdab787d7265b58c76ce6312e9f519f4124 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 30 Dec 2009 19:16:32 -0500 Subject: Add missing required line so this plugin works if it's the first (or only) Authentication Plugin in use --- plugins/CasAuthentication/CasAuthenticationPlugin.php | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/CasAuthentication/CasAuthenticationPlugin.php b/plugins/CasAuthentication/CasAuthenticationPlugin.php index 428aafb02..8b6ef5462 100644 --- a/plugins/CasAuthentication/CasAuthenticationPlugin.php +++ b/plugins/CasAuthentication/CasAuthenticationPlugin.php @@ -34,6 +34,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { // We bundle the phpCAS library... set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/CAS'); +require_once INSTALLDIR.'/plugins/Authentication/AuthenticationPlugin.php'; class CasAuthenticationPlugin extends AuthenticationPlugin { public $server; -- cgit v1.2.3-54-g00ecf From 1e9c03e1993b5d2978ac4c5213a8a64e0150b4a2 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 30 Dec 2009 19:29:38 -0500 Subject: Enable memcache automatic compression, starting at 20k and only if compression gain is greater than 20%. Allows storage of larger objects (over 1mb in size uncompressed), such as huge LDAP schemas. Should also improve cache efficiency (allows more stuff to be stored in same memory) and reduce network latency (less data transfer) --- lib/util.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/util.php b/lib/util.php index ed81aeba1..df3110ddd 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1416,6 +1416,7 @@ function common_memcache() } else { $cache->addServer($servers); } + $cache->setCompressThreshold(20000, 0.2); } return $cache; } -- cgit v1.2.3-54-g00ecf From ff50c2b91d9fadaa9a4ede11785408408fc2d3c5 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 30 Dec 2009 16:40:59 -0800 Subject: Revert debugging code --- classes/Memcached_DataObject.php | 9 --------- lib/profilelist.php | 5 ----- 2 files changed, 14 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 4efec06ab..d8b0db5a6 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -31,20 +31,11 @@ class Memcached_DataObject extends DB_DataObject function __destruct() { - if (get_class($this) == 'Profile') - common_log(LOG_INFO, 'subbug: destructing result id ' . $this->_DB_resultid); $this->free(); if (method_exists('DB_DataObject', '__destruct')) { parent::__destruct(); } } - - function free() - { - if (get_class($this) == 'Profile') - common_log(LOG_INFO, 'subbug: freeing result id ' . $this->_DB_resultid); - parent::free(); - } function &staticGet($cls, $k, $v=null) { diff --git a/lib/profilelist.php b/lib/profilelist.php index ae875ac01..3412d41d1 100644 --- a/lib/profilelist.php +++ b/lib/profilelist.php @@ -86,21 +86,16 @@ class ProfileList extends Widget function showProfiles() { - $log = strtolower(get_class($this)) == 'subscriberslist' && $this->owner->nickname == 'petercook'; $cnt = 0; - if ($log) common_log(LOG_INFO, "subbug: starting with {$this->profile->N}"); while ($this->profile->fetch()) { $cnt++; if($cnt > PROFILES_PER_PAGE) { - if ($log) common_log(LOG_INFO, "subbug: breaking at $cnt"); break; } - if ($log) common_log(LOG_INFO, "subbug: showing at $cnt"); $pli = $this->newListItem($this->profile); $pli->show(); } - if ($log) common_log(LOG_INFO, "subbug: ended at $cnt"); return $cnt; } -- cgit v1.2.3-54-g00ecf From 89cca01259d71f3da961ef64def3647f86a01567 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 30 Dec 2009 16:42:57 -0800 Subject: Take Memcached_DataObject destructor back out to check whether it might be causing some under-the-hood problems. --- classes/Memcached_DataObject.php | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index d8b0db5a6..644b84d5c 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -23,20 +23,6 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; class Memcached_DataObject extends DB_DataObject { - /** - * Destructor to free global memory resources associated with - * this data object when it's unset or goes out of scope. - * DB_DataObject doesn't do this yet by itself. - */ - - function __destruct() - { - $this->free(); - if (method_exists('DB_DataObject', '__destruct')) { - parent::__destruct(); - } - } - function &staticGet($cls, $k, $v=null) { if (is_null($v)) { -- cgit v1.2.3-54-g00ecf From 4985582880b56f23226dfffb3f81140d8d4c055f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 12:43:33 +0000 Subject: Fixed Event end name --- lib/noticeform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index 76715c35a..0af497099 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -203,7 +203,7 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_id', empty($this->location_id) ? null : $this->location_id, 'location_id'); $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? null : $this->location_ns, 'location_ns'); - Event::handle('StartShowNoticeFormData', array($this)); + Event::handle('EndShowNoticeFormData', array($this)); } } -- cgit v1.2.3-54-g00ecf From 58714808443204ecbd98b9763aeaeb1929341213 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 12:52:39 +0000 Subject: Moved shareLocation data from formActions() to formData() --- lib/noticeform.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index 0af497099..bfdab7738 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -203,6 +203,13 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_id', empty($this->location_id) ? null : $this->location_id, 'location_id'); $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? null : $this->location_ns, 'location_ns'); + if($this->user->shareLocation()) { + $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); + $this->out->checkbox('notice_data-location_enabled',_('Share your location')); + $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); + $this->out->elementEnd('div'); + } + Event::handle('EndShowNoticeFormData', array($this)); } } @@ -220,11 +227,5 @@ class NoticeForm extends Form 'name' => 'status_submit', 'type' => 'submit', 'value' => _('Send'))); - if($this->user->shareLocation()) { - $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); - $this->out->checkbox('notice_data-location_enabled',_('Share your location')); - $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); - $this->out->elementEnd('div'); - } } } -- cgit v1.2.3-54-g00ecf From 923e27b01a81c70ab52bc1b5856368143d0d32cf Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 14:23:11 +0000 Subject: Fix to grab and use the actual lat/lon values from the user profile --- lib/noticeform.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index bfdab7738..c60ac29c3 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -110,6 +110,8 @@ class NoticeForm extends Form $this->user = common_current_user(); } + $this->profile = $this->user->getProfile(); + if (common_config('attachments', 'uploads')) { $this->enctype = 'multipart/form-data'; } @@ -198,10 +200,11 @@ class NoticeForm extends Form $this->out->hidden('notice_return-to', $this->action, 'returnto'); } $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto'); - $this->out->hidden('notice_data-lat', empty($this->lat) ? null : $this->lat, 'lat'); - $this->out->hidden('notice_data-lon', empty($this->lon) ? null : $this->lon, 'lon'); - $this->out->hidden('notice_data-location_id', empty($this->location_id) ? null : $this->location_id, 'location_id'); - $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? null : $this->location_ns, 'location_ns'); + + $this->out->hidden('notice_data-lat', empty($this->profile->lat) ? null : $this->profile->lat, 'lat'); + $this->out->hidden('notice_data-lon', empty($this->profile->lon) ? null : $this->profile->lon, 'lon'); + $this->out->hidden('notice_data-location_id', empty($this->profile->location_id) ? null : $this->profile->location_id, 'location_id'); + $this->out->hidden('notice_data-location_ns', empty($this->profile->location_ns) ? null : $this->profile->location_ns, 'location_ns'); if($this->user->shareLocation()) { $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); -- cgit v1.2.3-54-g00ecf From 4efa841ba330cedd4ad71349a8196f18d5546cb8 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 14:24:27 +0000 Subject: If user doesn't want to share their location (which is globally set from their profile settings), don't bother to output form data for lat/long in the notice form. --- lib/noticeform.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index c60ac29c3..50b2e6893 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -201,12 +201,12 @@ class NoticeForm extends Form } $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto'); - $this->out->hidden('notice_data-lat', empty($this->profile->lat) ? null : $this->profile->lat, 'lat'); - $this->out->hidden('notice_data-lon', empty($this->profile->lon) ? null : $this->profile->lon, 'lon'); - $this->out->hidden('notice_data-location_id', empty($this->profile->location_id) ? null : $this->profile->location_id, 'location_id'); - $this->out->hidden('notice_data-location_ns', empty($this->profile->location_ns) ? null : $this->profile->location_ns, 'location_ns'); + if ($this->user->shareLocation()) { + $this->out->hidden('notice_data-lat', empty($this->profile->lat) ? null : $this->profile->lat, 'lat'); + $this->out->hidden('notice_data-lon', empty($this->profile->lon) ? null : $this->profile->lon, 'lon'); + $this->out->hidden('notice_data-location_id', empty($this->profile->location_id) ? null : $this->profile->location_id, 'location_id'); + $this->out->hidden('notice_data-location_ns', empty($this->profile->location_ns) ? null : $this->profile->location_ns, 'location_ns'); - if($this->user->shareLocation()) { $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); $this->out->checkbox('notice_data-location_enabled',_('Share your location')); $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); -- cgit v1.2.3-54-g00ecf From c986f59143b1969dc4ae324409295728b1d06e82 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 14:34:07 +0000 Subject: If user is sharing their location (based on profile setting), then enable it for form notice by default. This can be overriden by the cookie to preserve states. --- lib/noticeform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index 50b2e6893..f45e6629b 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -208,7 +208,7 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_ns', empty($this->profile->location_ns) ? null : $this->profile->location_ns, 'location_ns'); $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); - $this->out->checkbox('notice_data-location_enabled',_('Share your location')); + $this->out->checkbox('notice_data-location_enabled', _('Share your location'), true); $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); $this->out->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 0320bf2fb3cdd4b9e6b635485421833fde447da8 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 15:46:43 +0000 Subject: Use the location setting profile as secondary --- lib/noticeform.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index f45e6629b..5afa41e25 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -202,10 +202,10 @@ class NoticeForm extends Form $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto'); if ($this->user->shareLocation()) { - $this->out->hidden('notice_data-lat', empty($this->profile->lat) ? null : $this->profile->lat, 'lat'); - $this->out->hidden('notice_data-lon', empty($this->profile->lon) ? null : $this->profile->lon, 'lon'); - $this->out->hidden('notice_data-location_id', empty($this->profile->location_id) ? null : $this->profile->location_id, 'location_id'); - $this->out->hidden('notice_data-location_ns', empty($this->profile->location_ns) ? null : $this->profile->location_ns, 'location_ns'); + $this->out->hidden('notice_data-lat', empty($this->lat) ? (empty($this->profile->lat) ? null : $this->profile->lat) : $this->lat, 'lat'); + $this->out->hidden('notice_data-lon', empty($this->lon) ? (empty($this->profile->lon) ? null : $this->profile->lon) : $this->lon, 'lon'); + $this->out->hidden('notice_data-location_id', empty($this->location_id) ? (empty($this->profile->location_id) ? null : $this->profile->location_id) : $this->location_id, 'location_id'); + $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? (empty($this->profile->location_ns) ? null : $this->profile->location_ns) : $this->location_ns, 'location_ns'); $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); $this->out->checkbox('notice_data-location_enabled', _('Share your location'), true); -- cgit v1.2.3-54-g00ecf From 5103cb670a93a2f03e56230f50b8abe754b019d9 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 16:15:24 +0000 Subject: length is faster than size() --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index f52c70ba4..46efe92ff 100644 --- a/js/util.js +++ b/js/util.js @@ -438,7 +438,7 @@ var SN = { // StatusNet }, NoticeLocationAttach: function() { - if($('#notice_data-location_enabled').size()) { + if ($('#notice_data-location_enabled').length > 0) { if(navigator.geolocation) { $('#notice_data-location_enabled').change(function() { $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); -- cgit v1.2.3-54-g00ecf From e06292c2a2715de5af29704eebeadc1e4b05b079 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 16:19:49 +0000 Subject: If UA doens't support navigation.geolocation or have JavaScript enabled, the user should still be able to enable/disable their share location setting per notice. --- js/util.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/js/util.js b/js/util.js index 46efe92ff..7005d3125 100644 --- a/js/util.js +++ b/js/util.js @@ -439,7 +439,7 @@ var SN = { // StatusNet NoticeLocationAttach: function() { if ($('#notice_data-location_enabled').length > 0) { - if(navigator.geolocation) { + if (navigator.geolocation) { $('#notice_data-location_enabled').change(function() { $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); if($('#notice_data-location_enabled').attr('checked')) { @@ -472,8 +472,6 @@ var SN = { // StatusNet var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); $('#notice_data-location_enabled').attr('checked',(cookieVal == null || cookieVal == 'true')); $('#notice_data-location_enabled').change(); - } else { - $('#notice_data-location_enabled_container').remove(); } } }, -- cgit v1.2.3-54-g00ecf From 58465d74bac0413b530f8a266c767da2c2f82648 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 16:25:51 +0000 Subject: Compare by type --- js/util.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/js/util.js b/js/util.js index 7005d3125..a02a30a12 100644 --- a/js/util.js +++ b/js/util.js @@ -442,7 +442,8 @@ var SN = { // StatusNet if (navigator.geolocation) { $('#notice_data-location_enabled').change(function() { $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); - if($('#notice_data-location_enabled').attr('checked')) { + + if ($('#notice_data-location_enabled').attr('checked') === true) { $('#'+SN.C.S.NoticeLocationName).show(); $('#'+SN.C.S.NoticeLocationName).addClass('processing'); navigator.geolocation.getCurrentPosition(function(position) { @@ -461,7 +462,8 @@ var SN = { // StatusNet } }); }); - } else { + } + else { $('#'+SN.C.S.NoticeLocationName).hide(); $('#'+SN.C.S.NoticeLat).val(""); $('#'+SN.C.S.NoticeLon).val(""); -- cgit v1.2.3-54-g00ecf From ccf78976a51aff886f4ab5f3dfe5a9a76cebba76 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 16:34:07 +0000 Subject: NoticeLocationAttach() slightly more readable --- js/util.js | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/js/util.js b/js/util.js index a02a30a12..8716a3360 100644 --- a/js/util.js +++ b/js/util.js @@ -446,17 +446,32 @@ var SN = { // StatusNet if ($('#notice_data-location_enabled').attr('checked') === true) { $('#'+SN.C.S.NoticeLocationName).show(); $('#'+SN.C.S.NoticeLocationName).addClass('processing'); + navigator.geolocation.getCurrentPosition(function(position) { $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); - var data = {'lat': position.coords.latitude,'lon': position.coords.longitude, 'token': $('#token').val()}; + + var data = { + 'lat': position.coords.latitude, + 'lon': position.coords.longitude, + 'token': $('#token').val() + }; + $.getJSON($('#notice_data-location_enabled_container').attr('data-geocode-url'), data,function(location) { $('#'+SN.C.S.NoticeLocationName).removeClass('processing'); - if(typeof(location.location_ns)!="undefined") $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); - if(typeof(location.location_id)!="undefined") $('#'+SN.C.S.NoticeLocationId).val(location.location_id); - if(typeof(location.name)=="undefined") { + + if (typeof(location.location_ns) != 'undefined') { + $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); + } + + if (typeof(location.location_id) != 'undefined') { + $('#'+SN.C.S.NoticeLocationId).val(location.location_id); + } + + if (typeof(location.name) == 'undefined') { $('#'+SN.C.S.NoticeLocationName).text(position.coords.latitude + ' ' + position.coords.longitude); - } else { + } + else { $('#'+SN.C.S.NoticeLocationName).text(location.name); $('#'+SN.C.S.NoticeLocationName).attr('href',location.url); } @@ -465,12 +480,13 @@ var SN = { // StatusNet } else { $('#'+SN.C.S.NoticeLocationName).hide(); - $('#'+SN.C.S.NoticeLat).val(""); - $('#'+SN.C.S.NoticeLon).val(""); - $('#'+SN.C.S.NoticeLocationNs).val(""); - $('#'+SN.C.S.NoticeLocationId).val(""); + $('#'+SN.C.S.NoticeLat).val(''); + $('#'+SN.C.S.NoticeLon).val(''); + $('#'+SN.C.S.NoticeLocationNs).val(''); + $('#'+SN.C.S.NoticeLocationId).val(''); } }); + var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); $('#notice_data-location_enabled').attr('checked',(cookieVal == null || cookieVal == 'true')); $('#notice_data-location_enabled').change(); -- cgit v1.2.3-54-g00ecf From 5a66d27637237359b2d81f2ac21e721703b10891 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 16:37:46 +0000 Subject: Using semicolon to seperate lat and long; RFC2426 --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index 8716a3360..f53581384 100644 --- a/js/util.js +++ b/js/util.js @@ -469,7 +469,7 @@ var SN = { // StatusNet } if (typeof(location.name) == 'undefined') { - $('#'+SN.C.S.NoticeLocationName).text(position.coords.latitude + ' ' + position.coords.longitude); + $('#'+SN.C.S.NoticeLocationName).text(position.coords.latitude + ';' + position.coords.longitude); } else { $('#'+SN.C.S.NoticeLocationName).text(location.name); -- cgit v1.2.3-54-g00ecf From 8872d91483b689d168244ff0df2fa4b5b23a38cc Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 16:44:24 +0000 Subject: Removed style information out of HTML --- lib/noticeform.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/noticeform.php b/lib/noticeform.php index 5afa41e25..98f15ca09 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -209,7 +209,7 @@ class NoticeForm extends Form $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); $this->out->checkbox('notice_data-location_enabled', _('Share your location'), true); - $this->out->element('a', array('style' => 'display: none', 'target' => '_blank', 'id' => 'notice_data-location_name'), _('Finding your location...')); + $this->out->element('a', array('id' => 'notice_data-location_name'), _('Finding your location...')); $this->out->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From e84bf0aa989ce40494f62e7355a49060e9918a63 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 17:02:02 +0000 Subject: jQuery select SN.C.S.NoticeLocationName once. --- js/util.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/js/util.js b/js/util.js index f53581384..8ac0cbd66 100644 --- a/js/util.js +++ b/js/util.js @@ -442,10 +442,11 @@ var SN = { // StatusNet if (navigator.geolocation) { $('#notice_data-location_enabled').change(function() { $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); + NLN = $('#'+SN.C.S.NoticeLocationName); if ($('#notice_data-location_enabled').attr('checked') === true) { - $('#'+SN.C.S.NoticeLocationName).show(); - $('#'+SN.C.S.NoticeLocationName).addClass('processing'); + NLN.show(); + NLN.addClass('processing'); navigator.geolocation.getCurrentPosition(function(position) { $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); @@ -457,8 +458,8 @@ var SN = { // StatusNet 'token': $('#token').val() }; - $.getJSON($('#notice_data-location_enabled_container').attr('data-geocode-url'), data,function(location) { - $('#'+SN.C.S.NoticeLocationName).removeClass('processing'); + $.getJSON($('#notice_data-location_enabled_container').attr('data-geocode-url'), data, function(location) { + NLN.removeClass('processing'); if (typeof(location.location_ns) != 'undefined') { $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); @@ -469,17 +470,17 @@ var SN = { // StatusNet } if (typeof(location.name) == 'undefined') { - $('#'+SN.C.S.NoticeLocationName).text(position.coords.latitude + ';' + position.coords.longitude); + NLN.text(position.coords.latitude + ';' + position.coords.longitude); } else { - $('#'+SN.C.S.NoticeLocationName).text(location.name); - $('#'+SN.C.S.NoticeLocationName).attr('href',location.url); + NLN.text(location.name); + NLN.attr('href',location.url); } }); }); } else { - $('#'+SN.C.S.NoticeLocationName).hide(); + NLN.hide(); $('#'+SN.C.S.NoticeLat).val(''); $('#'+SN.C.S.NoticeLon).val(''); $('#'+SN.C.S.NoticeLocationNs).val(''); -- cgit v1.2.3-54-g00ecf From dde6415a6a91eb6670a80279a344ab6cc56ef17d Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 18:08:21 +0000 Subject: Moved JavaScript dependant stuff out of noticeform. --- js/util.js | 29 ++++++++++++++++++++++------- lib/noticeform.php | 4 ++-- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/js/util.js b/js/util.js index 8ac0cbd66..41b3fdb25 100644 --- a/js/util.js +++ b/js/util.js @@ -440,8 +440,20 @@ var SN = { // StatusNet NoticeLocationAttach: function() { if ($('#notice_data-location_enabled').length > 0) { if (navigator.geolocation) { - $('#notice_data-location_enabled').change(function() { + var NLE = $('#notice_data-location_wrap'); + var geocodeURL = NLE.attr('title'); + + NLE.change(function() { + NLE.removeAttr('title'); + $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); + + var NLN = $('#'+SN.C.S.NoticeLocationName); + if (NLN.length > 0) { + NLN.remove(); + } + + NLE.append('Geo'); NLN = $('#'+SN.C.S.NoticeLocationName); if ($('#notice_data-location_enabled').attr('checked') === true) { @@ -458,8 +470,9 @@ var SN = { // StatusNet 'token': $('#token').val() }; - $.getJSON($('#notice_data-location_enabled_container').attr('data-geocode-url'), data, function(location) { - NLN.removeClass('processing'); + $.getJSON(geocodeURL, data, function(location) { + NLN.replaceWith(''); + NLN = $('#'+SN.C.S.NoticeLocationName); if (typeof(location.location_ns) != 'undefined') { $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); @@ -470,12 +483,14 @@ var SN = { // StatusNet } if (typeof(location.name) == 'undefined') { - NLN.text(position.coords.latitude + ';' + position.coords.longitude); + NLN_text = position.coords.latitude + ';' + position.coords.longitude; } else { - NLN.text(location.name); - NLN.attr('href',location.url); + NLN_text = location.name; } + + NLN.attr('href', location.url); + NLN.text(NLN_text); }); }); } @@ -490,7 +505,7 @@ var SN = { // StatusNet var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); $('#notice_data-location_enabled').attr('checked',(cookieVal == null || cookieVal == 'true')); - $('#notice_data-location_enabled').change(); + NLE.change(); } } }, diff --git a/lib/noticeform.php b/lib/noticeform.php index 98f15ca09..7ed880442 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -207,9 +207,9 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_id', empty($this->location_id) ? (empty($this->profile->location_id) ? null : $this->profile->location_id) : $this->location_id, 'location_id'); $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? (empty($this->profile->location_ns) ? null : $this->profile->location_ns) : $this->location_ns, 'location_ns'); - $this->out->elementStart('div',array('id' => 'notice_data-location_enabled_container', 'data-geocode-url' => common_local_url('geocode'))); + $this->out->elementStart('div', array('id' => 'notice_data-location_wrap', + 'title' => common_local_url('geocode'))); $this->out->checkbox('notice_data-location_enabled', _('Share your location'), true); - $this->out->element('a', array('id' => 'notice_data-location_name'), _('Finding your location...')); $this->out->elementEnd('div'); } -- cgit v1.2.3-54-g00ecf From 9496f2735e6b510f15c2c3ce627d5e6d3a94745b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 18:27:05 +0000 Subject: Moving notice_data-location_wrap after notice form fieldset --- js/util.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/js/util.js b/js/util.js index 41b3fdb25..0969ba5e2 100644 --- a/js/util.js +++ b/js/util.js @@ -439,10 +439,12 @@ var SN = { // StatusNet NoticeLocationAttach: function() { if ($('#notice_data-location_enabled').length > 0) { - if (navigator.geolocation) { - var NLE = $('#notice_data-location_wrap'); - var geocodeURL = NLE.attr('title'); + var NLE = $('#notice_data-location_wrap'); + var geocodeURL = NLE.attr('title'); + + NLE.insertAfter('#'+SN.C.S.FormNotice+' fieldset'); + if (navigator.geolocation) { NLE.change(function() { NLE.removeAttr('title'); @@ -504,7 +506,7 @@ var SN = { // StatusNet }); var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - $('#notice_data-location_enabled').attr('checked',(cookieVal == null || cookieVal == 'true')); + $('#notice_data-location_enabled').attr('checked', (cookieVal == null || cookieVal == 'true')); NLE.change(); } } -- cgit v1.2.3-54-g00ecf From 01dbee2ba5280d97ddd0bb82217e8b3e7680e67b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 31 Dec 2009 18:41:10 +0000 Subject: Initial UI for geo location share option in notice form --- js/util.js | 2 +- lib/noticeform.php | 1 + theme/base/css/display.css | 15 +++++++++++++++ theme/identica/css/display.css | 4 ++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index 0969ba5e2..dd7a74a7a 100644 --- a/js/util.js +++ b/js/util.js @@ -455,7 +455,7 @@ var SN = { // StatusNet NLN.remove(); } - NLE.append('Geo'); + NLE.prepend('Geo'); NLN = $('#'+SN.C.S.NoticeLocationName); if ($('#notice_data-location_enabled').attr('checked') === true) { diff --git a/lib/noticeform.php b/lib/noticeform.php index 7ed880442..d35655a0b 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -208,6 +208,7 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? (empty($this->profile->location_ns) ? null : $this->profile->location_ns) : $this->location_ns, 'location_ns'); $this->out->elementStart('div', array('id' => 'notice_data-location_wrap', + 'class' => 'success', 'title' => common_local_url('geocode'))); $this->out->checkbox('notice_data-location_enabled', _('Share your location'), true); $this->out->elementEnd('div'); diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 29c7ee963..d6a50ac60 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -566,6 +566,21 @@ overflow:auto; float:right; font-size:0.8em; } +.form_notice #notice_data-location_wrap input { +margin-right:7px; +float:left; +} +.form_notice #notice_data-location_wrap label { +font-weight:normal; +font-size:1em; +} +.form_notice #notice_data-location_name { +display:block; +line-height:1.6; +} +.form_notice span#notice_data-location_name { +padding-left:18px; +} button.close { width:16px; diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index e86ee2437..78a0707ce 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -111,6 +111,10 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); text-shadow:none; } +.form_notice #notice_data-location_name { +background-position:0 47%; +} + a, .form_settings input.form_action-primary, .notice-options input, -- cgit v1.2.3-54-g00ecf From 55ba858e8cb4eac0fa60fb78f8e8c4813be065a9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 31 Dec 2009 12:38:58 -1000 Subject: Script to update the location ID for users Since we added locations to the database, some users may have location strings in their profiles but not structured locations. This script updates the locations for single users or for all users. --- scripts/updatelocation.php | 125 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 scripts/updatelocation.php diff --git a/scripts/updatelocation.php b/scripts/updatelocation.php new file mode 100644 index 000000000..4110660ab --- /dev/null +++ b/scripts/updatelocation.php @@ -0,0 +1,125 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/..')); + +$shortoptions = 'i:n:af'; +$longoptions = array('id=', 'nickname=', 'all', 'force'); + +$helptext = <<find()) { + while ($user->fetch()) { + updateLocation($user); + } + } + } else { + show_help(); + exit(1); + } +} catch (Exception $e) { + print $e->getMessage()."\n"; + exit(1); +} + +function updateLocation($user) +{ + $profile = $user->getProfile(); + + if (empty($profile)) { + throw new Exception("User has no profile: " . $user->nickname); + } + + if (empty($profile->location)) { + if (have_option('v', 'verbose')) { + print "No location string for '".$user->nickname."'\n"; + } + return; + } + + if (!empty($profile->location_id) && !have_option('f', 'force')) { + if (have_option('v', 'verbose')) { + print "Location ID already set for '".$user->nickname."'\n"; + } + return; + } + + $loc = Location::fromName($profile->location); + + if (empty($loc)) { + if (have_option('v', 'verbose')) { + print "No structured location for string '".$profile->location."' for user '".$user->nickname."'\n"; + } + return; + } else { + $orig = clone($profile); + + $profile->lat = $loc->lat; + $profile->lon = $loc->lon; + $profile->location_id = $loc->location_id; + $profile->location_ns = $loc->location_ns; + + $result = $profile->update($orig); + + if (!$result) { + common_log_db_error($profile, 'UPDATE', __FILE__); + } + + if (!have_option('q', 'quiet')) { + print "Location ID " . $profile->location_id . " set for user " . $user->nickname . "\n"; + } + } + + $profile->free(); + unset($loc); + unset($profile); + + return; +} -- cgit v1.2.3-54-g00ecf From 450cd6774a018b9bd61481cede4f723ff9548de4 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 30 Dec 2009 20:33:10 +0000 Subject: Update to external Facebook libs --- plugins/Facebook/facebook/facebook.php | 23 +- plugins/Facebook/facebook/facebook_desktop.php | 2 +- plugins/Facebook/facebook/facebook_mobile.php | 260 ++++++++++++++ .../Facebook/facebook/facebookapi_php5_restlib.php | 382 ++++++++++++++------- 4 files changed, 534 insertions(+), 133 deletions(-) create mode 100644 plugins/Facebook/facebook/facebook_mobile.php diff --git a/plugins/Facebook/facebook/facebook.php b/plugins/Facebook/facebook/facebook.php index 016e8e8e0..440706cbc 100644 --- a/plugins/Facebook/facebook/facebook.php +++ b/plugins/Facebook/facebook/facebook.php @@ -82,7 +82,8 @@ class Facebook { if (isset($this->fb_params['friends'])) { - $this->api_client->friends_list = explode(',', $this->fb_params['friends']); + $this->api_client->friends_list = + array_filter(explode(',', $this->fb_params['friends'])); } if (isset($this->fb_params['added'])) { $this->api_client->added = $this->fb_params['added']; @@ -215,11 +216,15 @@ class Facebook { // Invalidate the session currently being used, and clear any state associated // with it. Note that the user will still remain logged into Facebook. public function expire_session() { - if ($this->api_client->auth_expireSession()) { + try { + if ($this->api_client->auth_expireSession()) { + $this->clear_cookie_state(); + return true; + } else { + return false; + } + } catch (Exception $e) { $this->clear_cookie_state(); - return true; - } else { - return false; } } @@ -249,10 +254,14 @@ class Facebook { if (!$this->in_fb_canvas() && isset($_COOKIE[$this->api_key . '_user'])) { $cookies = array('user', 'session_key', 'expires', 'ss'); foreach ($cookies as $name) { - setcookie($this->api_key . '_' . $name, false, time() - 3600); + setcookie($this->api_key . '_' . $name, + false, + time() - 3600, + '', + $this->base_domain); unset($_COOKIE[$this->api_key . '_' . $name]); } - setcookie($this->api_key, false, time() - 3600); + setcookie($this->api_key, false, time() - 3600, '', $this->base_domain); unset($_COOKIE[$this->api_key]); } diff --git a/plugins/Facebook/facebook/facebook_desktop.php b/plugins/Facebook/facebook/facebook_desktop.php index e79a2ca34..ed4762215 100644 --- a/plugins/Facebook/facebook/facebook_desktop.php +++ b/plugins/Facebook/facebook/facebook_desktop.php @@ -60,7 +60,7 @@ class FacebookDesktop extends Facebook { public function set_session_secret($session_secret) { $this->secret = $session_secret; - $this->api_client->secret = $session_secret; + $this->api_client->use_session_secret($session_secret); } public function require_login() { diff --git a/plugins/Facebook/facebook/facebook_mobile.php b/plugins/Facebook/facebook/facebook_mobile.php new file mode 100644 index 000000000..5ee7f4ed5 --- /dev/null +++ b/plugins/Facebook/facebook/facebook_mobile.php @@ -0,0 +1,260 @@ + $val) { + if (!$val) { + unset($params[$key]); + } + } + return $page . '?' . http_build_query($params); + } + + public function get_www_url($action, $params) { + $page = parent::get_facebook_url('www'). '/' .$action; + foreach($params as $key => $val) { + if (!$val) { + unset($params[$key]); + } + } + return $page . '?' . http_build_query($params); + } + + public function get_add_url($next=null) { + + return $this->get_m_url('add.php', array('api_key' => $this->api_key, + 'next' => $next)); + } + + public function get_tos_url($next=null, $cancel = null, $canvas=null) { + return $this->get_m_url('tos.php', array('api_key' => $this->api_key, + 'v' => '1.0', + 'next' => $next, + 'canvas' => $canvas, + 'cancel' => $cancel)); + } + + public function get_logout_url($next=null) { + $params = array('api_key' => $this->api_key, + 'session_key' => $this->api_client->session_key, + ); + + if ($next) { + $params['connect_next'] = 1; + $params['next'] = $next; + } + + return $this->get_m_url('logout.php', $params); + } + public function get_register_url($next=null, $cancel_url=null) { + return $this->get_m_url('r.php', + array('fbconnect' => 1, + 'api_key' => $this->api_key, + 'next' => $next ? $next : parent::current_url(), + 'cancel_url' => $cancel_url ? $cancel_url : parent::current_url())); + } + /** + * These set of fbconnect style url redirect back to the application current + * page when the action is done. Developer can also use the non fbconnect + * style url and provide their own redirect link by giving the right parameter + * to $next and/or $cancel_url + */ + public function get_fbconnect_register_url() { + return $this->get_register_url(parent::current_url(), parent::current_url()); + } + public function get_fbconnect_tos_url() { + return $this->get_tos_url(parent::current_url(), parent::current_url(), $this->in_frame()); + } + + public function get_fbconnect_logout_url() { + return $this->get_logout_url(parent::current_url()); + } + + public function logout_user() { + $this->user = null; + } + + public function get_prompt_permissions_url($ext_perm, + $next=null, + $cancel_url=null) { + + return $this->get_www_url('connect/prompt_permissions.php', + array('api_key' => $this->api_key, + 'ext_perm' => $ext_perm, + 'next' => $next ? $next : parent::current_url(), + 'cancel' => $cancel_url ? $cancel_url : parent::current_url(), + 'display' => 'wap')); + + } + + /** + * support both prompt_permissions.php and authorize.php for now. + * authorized.php is to be deprecate though. + */ + public function get_extended_permission_url($ext_perm, + $next=null, + $cancel_url=null) { + $next = $next ? $next : parent::current_url(); + $cancel_url = $cancel_url ? $cancel_url : parent::current_url(); + + return $this->get_m_url('authorize.php', + array('api_key' => $this->api_key, + 'ext_perm' => $ext_perm, + 'next' => $next, + 'cancel_url' => $cancel_url)); + + } + + public function render_prompt_feed_url($action_links=NULL, + $target_id=NULL, + $message='', + $user_message_prompt='', + $caption=NULL, + $callback ='', + $cancel='', + $attachment=NULL, + $preview=true) { + + $params = array('api_key' => $this->api_key, + 'session_key' => $this->api_client->session_key, + ); + if (!empty($attachment)) { + $params['attachment'] = urlencode(json_encode($attachment)); + } else { + $attachment = new stdClass(); + $app_display_info = $this->api_client->admin_getAppProperties(array('application_name', + 'callback_url', + 'description', + 'logo_url')); + $app_display_info = $app_display_info; + $attachment->name = $app_display_info['application_name']; + $attachment->caption = !empty($caption) ? $caption : 'Just see what\'s new!'; + $attachment->description = $app_display_info['description']; + $attachment->href = $app_display_info['callback_url']; + if (!empty($app_display_info['logo_url'])) { + $logo = new stdClass(); + $logo->type = 'image'; + $logo->src = $app_display_info['logo_url']; + $logo->href = $app_display_info['callback_url']; + $attachment->media = array($logo); + } + $params['attachment'] = urlencode(json_encode($attachment)); + } + $params['preview'] = $preview; + $params['message'] = $message; + $params['user_message_prompt'] = $user_message_prompt; + if (!empty($callback)) { + $params['callback'] = $callback; + } else { + $params['callback'] = $this->current_url(); + } + if (!empty($cancel)) { + $params['cancel'] = $cancel; + } else { + $params['cancel'] = $this->current_url(); + } + + if (!empty($target_id)) { + $params['target_id'] = $target_id; + } + if (!empty($action_links)) { + $params['action_links'] = urlencode(json_encode($action_links)); + } + + $params['display'] = 'wap'; + header('Location: '. $this->get_www_url('connect/prompt_feed.php', $params)); + } + +//use template_id + public function render_feed_form_url($template_id=NULL, + $template_data=NULL, + $user_message=NULL, + $body_general=NULL, + $user_message_prompt=NULL, + $target_id=NULL, + $callback=NULL, + $cancel=NULL, + $preview=true) { + + $params = array('api_key' => $this->api_key); + $params['preview'] = $preview; + if (isset($template_id) && $template_id) { + $params['template_id'] = $template_id; + } + $params['message'] = $user_message ? $user_message['value'] : ''; + if (isset($body_general) && $body_general) { + $params['body_general'] = $body_general; + } + if (isset($user_message_prompt) && $user_message_prompt) { + $params['user_message_prompt'] = $user_message_prompt; + } + if (isset($callback) && $callback) { + $params['callback'] = $callback; + } else { + $params['callback'] = $this->current_url(); + } + if (isset($cancel) && $cancel) { + $params['cancel'] = $cancel; + } else { + $params['cancel'] = $this->current_url(); + } + if (isset($template_data) && $template_data) { + $params['template_data'] = $template_data; + } + if (isset($target_id) && $target_id) { + $params['to_ids'] = $target_id; + } + $params['display'] = 'wap'; + header('Location: '. $this->get_www_url('connect/prompt_feed.php', $params)); + } +} diff --git a/plugins/Facebook/facebook/facebookapi_php5_restlib.php b/plugins/Facebook/facebook/facebookapi_php5_restlib.php index 55cb7fb86..fa1088cd0 100755 --- a/plugins/Facebook/facebook/facebookapi_php5_restlib.php +++ b/plugins/Facebook/facebook/facebookapi_php5_restlib.php @@ -56,6 +56,8 @@ class FacebookRestClient { private $call_as_apikey; private $use_curl_if_available; private $format = null; + private $using_session_secret = false; + private $rawData = null; const BATCH_MODE_DEFAULT = 0; const BATCH_MODE_SERVER_PARALLEL = 0; @@ -76,7 +78,10 @@ class FacebookRestClient { $this->last_call_id = 0; $this->call_as_apikey = ''; $this->use_curl_if_available = true; - $this->server_addr = Facebook::get_facebook_url('api') . '/restserver.php'; + $this->server_addr = + Facebook::get_facebook_url('api') . '/restserver.php'; + $this->photo_server_addr = + Facebook::get_facebook_url('api-photo') . '/restserver.php'; if (!empty($GLOBALS['facebook_config']['debug'])) { $this->cur_id = 0; @@ -128,6 +133,16 @@ function toggleDisplay(id, type) { $this->user = $uid; } + + /** + * Switch to use the session secret instead of the app secret, + * for desktop and unsecured environment + */ + public function use_session_secret($session_secret) { + $this->secret = $session_secret; + $this->using_session_secret = true; + } + /** * Normally, if the cURL library/PHP extension is available, it is used for * HTTP transactions. This allows that behavior to be overridden, falling @@ -270,25 +285,35 @@ function toggleDisplay(id, type) { /** * Returns the session information available after current user logs in. * - * @param string $auth_token the token returned by - * auth_createToken or passed back to - * your callback_url. - * @param bool $generate_session_secret whether the session returned should - * include a session secret + * @param string $auth_token the token returned by auth_createToken or + * passed back to your callback_url. + * @param bool $generate_session_secret whether the session returned should + * include a session secret + * @param string $host_url the connect site URL for which the session is + * being generated. This parameter is optional, unless + * you want Facebook to determine which of several base domains + * to choose from. If this third argument isn't provided but + * there are several base domains, the first base domain is + * chosen. * * @return array An assoc array containing session_key, uid */ - public function auth_getSession($auth_token, $generate_session_secret=false) { + public function auth_getSession($auth_token, + $generate_session_secret = false, + $host_url = null) { if (!$this->pending_batch()) { - $result = $this->call_method('facebook.auth.getSession', - array('auth_token' => $auth_token, - 'generate_session_secret' => $generate_session_secret)); + $result = $this->call_method( + 'facebook.auth.getSession', + array('auth_token' => $auth_token, + 'generate_session_secret' => $generate_session_secret, + 'host_url' => $host_url)); $this->session_key = $result['session_key']; - if (!empty($result['secret']) && !$generate_session_secret) { - // desktop apps have a special secret - $this->secret = $result['secret']; - } + if (!empty($result['secret']) && !$generate_session_secret) { + // desktop apps have a special secret + $this->secret = $result['secret']; + } + return $result; } } @@ -519,13 +544,34 @@ function toggleDisplay(id, type) { return $this->call_upload_method('facebook.events.create', array('event_info' => $event_info), $file, - Facebook::get_facebook_url('api-photo') . '/restserver.php'); + $this->photo_server_addr); } else { return $this->call_method('facebook.events.create', array('event_info' => $event_info)); } } + /** + * Invites users to an event. If a session user exists, the session user + * must have permissions to invite friends to the event and $uids must contain + * a list of friend ids. Otherwise, the event must have been + * created by the app and $uids must contain users of the app. + * This method requires the 'create_event' extended permission to + * invite people on behalf of a user. + * + * @param $eid the event id + * @param $uids an array of users to invite + * @param $personal_message a string containing the user's message + * (text only) + * + */ + public function events_invite($eid, $uids, $personal_message) { + return $this->call_method('facebook.events.invite', + array('eid' => $eid, + 'uids' => $uids, + 'personal_message', $personal_message)); + } + /** * Edits an existing event. Only works for events where application is admin. * @@ -540,7 +586,7 @@ function toggleDisplay(id, type) { return $this->call_upload_method('facebook.events.edit', array('eid' => $eid, 'event_info' => $event_info), $file, - Facebook::get_facebook_url('api-photo') . '/restserver.php'); + $this->photo_server_addr); } else { return $this->call_method('facebook.events.edit', array('eid' => $eid, @@ -576,21 +622,7 @@ function toggleDisplay(id, type) { array('url' => $url)); } - /** - * Lets you insert text strings in their native language into the Facebook - * Translations database so they can be translated. - * - * @param array $native_strings An array of maps, where each map has a 'text' - * field and a 'description' field. - * - * @return int Number of strings uploaded. - */ - public function &fbml_uploadNativeStrings($native_strings) { - return $this->call_method('facebook.fbml.uploadNativeStrings', - array('native_strings' => json_encode($native_strings))); - } - - /** + /** * Associates a given "handle" with FBML markup so that the handle can be * used within the fb:ref FBML tag. A handle is unique within an application * and allows an application to publish identical FBML to many user profiles @@ -668,7 +700,44 @@ function toggleDisplay(id, type) { array('tag_names' => json_encode($tag_names))); } + /** + * Gets the best translations for native strings submitted by an application + * for translation. If $locale is not specified, only native strings and their + * descriptions are returned. If $all is true, then unapproved translations + * are returned as well, otherwise only approved translations are returned. + * + * A mapping of locale codes -> language names is available at + * http://wiki.developers.facebook.com/index.php/Facebook_Locales + * + * @param string $locale the locale to get translations for, or 'all' for all + * locales, or 'en_US' for native strings + * @param bool $all whether to return all or only approved translations + * + * @return array (locale, array(native_strings, array('best translation + * available given enough votes or manual approval', approval + * status))) + * @error API_EC_PARAM + * @error API_EC_PARAM_BAD_LOCALE + */ + public function &intl_getTranslations($locale = 'en_US', $all = false) { + return $this->call_method('facebook.intl.getTranslations', + array('locale' => $locale, + 'all' => $all)); + } + /** + * Lets you insert text strings in their native language into the Facebook + * Translations database so they can be translated. + * + * @param array $native_strings An array of maps, where each map has a 'text' + * field and a 'description' field. + * + * @return int Number of strings uploaded. + */ + public function &intl_uploadNativeStrings($native_strings) { + return $this->call_method('facebook.intl.uploadNativeStrings', + array('native_strings' => json_encode($native_strings))); + } /** * This method is deprecated for calls made on behalf of users. This method @@ -1248,6 +1317,87 @@ function toggleDisplay(id, type) { 'test_mode' => $test_mode)), true); } + /** + * Gifts API + */ + + /** + * Get Gifts associated with an app + * + * @return array of gifts + */ + public function gifts_get() { + return json_decode( + $this->call_method('facebook.gifts.get', + array()), + true + ); + } + + /* + * Update gifts stored by an app + * + * @param array containing gift_id => gift_data to be updated + * @return array containing gift_id => true/false indicating success + * in updating that gift + */ + public function gifts_update($update_array) { + return json_decode( + $this->call_method('facebook.gifts.update', + array('update_str' => json_encode($update_array)) + ), + true + ); + } + + /** + * Dashboard API + */ + + /** + * Set the news for the specified user. + * + * @param int $uid The user for whom you are setting news for + * @param string $news Text of news to display + * + * @return bool Success + */ + public function dashboard_setNews($uid, $news) { + return $this->call_method('facebook.dashboard.setNews', + array('uid' => $uid, + 'news' => $news) + ); + } + + /** + * Get the current news of the specified user. + * + * @param int $uid The user to get the news of + * + * @return string The text of the current news for the user + */ + public function dashboard_getNews($uid) { + return json_decode( + $this->call_method('facebook.dashboard.getNews', + array('uid' => $uid) + ), true); + } + + /** + * Set the news for the specified user. + * + * @param int $uid The user you are clearing the news of + * + * @return bool Success + */ + public function dashboard_clearNews($uid) { + return $this->call_method('facebook.dashboard.clearNews', + array('uid' => $uid) + ); + } + + + /** * Creates a note with the specified title and content. * @@ -1795,14 +1945,20 @@ function toggleDisplay(id, type) { $start_time = 0, $end_time = 0, $limit = 30, - $filter_key = '') { + $filter_key = '', + $exportable_only = false, + $metadata = null, + $post_ids = null) { $args = array( 'viewer_id' => $viewer_id, 'source_ids' => $source_ids, 'start_time' => $start_time, 'end_time' => $end_time, 'limit' => $limit, - 'filter_key' => $filter_key); + 'filter_key' => $filter_key, + 'exportable_only' => $exportable_only, + 'metadata' => $metadata, + 'post_ids' => $post_ids); return $this->call_method('facebook.stream.get', $args); } @@ -1949,97 +2105,6 @@ function toggleDisplay(id, type) { 'options' => json_encode($options))); } - /** - * Get all the marketplace categories. - * - * @return array A list of category names - */ - function marketplace_getCategories() { - return $this->call_method('facebook.marketplace.getCategories', - array()); - } - - /** - * Get all the marketplace subcategories for a particular category. - * - * @param category The category for which we are pulling subcategories - * - * @return array A list of subcategory names - */ - function marketplace_getSubCategories($category) { - return $this->call_method('facebook.marketplace.getSubCategories', - array('category' => $category)); - } - - /** - * Get listings by either listing_id or user. - * - * @param listing_ids An array of listing_ids (optional) - * @param uids An array of user ids (optional) - * - * @return array The data for matched listings - */ - function marketplace_getListings($listing_ids, $uids) { - return $this->call_method('facebook.marketplace.getListings', - array('listing_ids' => $listing_ids, 'uids' => $uids)); - } - - /** - * Search for Marketplace listings. All arguments are optional, though at - * least one must be filled out to retrieve results. - * - * @param category The category in which to search (optional) - * @param subcategory The subcategory in which to search (optional) - * @param query A query string (optional) - * - * @return array The data for matched listings - */ - function marketplace_search($category, $subcategory, $query) { - return $this->call_method('facebook.marketplace.search', - array('category' => $category, - 'subcategory' => $subcategory, - 'query' => $query)); - } - - /** - * Remove a listing from Marketplace. - * - * @param listing_id The id of the listing to be removed - * @param status 'SUCCESS', 'NOT_SUCCESS', or 'DEFAULT' - * - * @return bool True on success - */ - function marketplace_removeListing($listing_id, - $status='DEFAULT', - $uid=null) { - return $this->call_method('facebook.marketplace.removeListing', - array('listing_id' => $listing_id, - 'status' => $status, - 'uid' => $uid)); - } - - /** - * Create/modify a Marketplace listing for the loggedinuser. - * - * @param int listing_id The id of a listing to be modified, 0 - * for a new listing. - * @param show_on_profile bool Should we show this listing on the - * user's profile - * @param listing_attrs array An array of the listing data - * - * @return int The listing_id (unchanged if modifying an existing listing). - */ - function marketplace_createListing($listing_id, - $show_on_profile, - $attrs, - $uid=null) { - return $this->call_method('facebook.marketplace.createListing', - array('listing_id' => $listing_id, - 'show_on_profile' => $show_on_profile, - 'listing_attrs' => json_encode($attrs), - 'uid' => $uid)); - } - ///////////////////////////////////////////////////////////////////////////// // Data Store API @@ -2875,6 +2940,35 @@ function toggleDisplay(id, type) { array('properties' => json_encode($properties))); } + /** + * Sets href and text for a Live Stream Box xid's via link + * + * @param string $xid xid of the Live Stream + * @param string $via_href Href for the via link + * @param string $via_text Text for the via link + * + * @return boolWhether the set was successful + */ + public function admin_setLiveStreamViaLink($xid, $via_href, $via_text) { + return $this->call_method('facebook.admin.setLiveStreamViaLink', + array('xid' => $xid, + 'via_href' => $via_href, + 'via_text' => $via_text)); + } + + /** + * Gets href and text for a Live Stream Box xid's via link + * + * @param string $xid xid of the Live Stream + * + * @return Array Associative array with keys 'via_href' and 'via_text' + * False if there was an error. + */ + public function admin_getLiveStreamViaLink($xid) { + return $this->call_method('facebook.admin.getLiveStreamViaLink', + array('xid' => $xid)); + } + /** * Returns the allocation limit value for a specified integration point name * Integration point names are defined in lib/api/karma/constants.php in the @@ -3012,6 +3106,7 @@ function toggleDisplay(id, type) { $params['call_as_apikey'] = $this->call_as_apikey; } $data = $this->post_request($method, $params); + $this->rawData = $data; $result = $this->convert_result($data, $method, $params); if (is_array($result) && isset($result['error_code'])) { throw new FacebookRestClientException($result['error_msg'], @@ -3053,6 +3148,16 @@ function toggleDisplay(id, type) { return $this->format; } + /** + * Returns the raw JSON or XML output returned by the server in the most + * recent API call. + * + * @return string + */ + public function getRawData() { + return $this->rawData; + } + /** * Calls the specified file-upload POST method with the specified parameters * @@ -3144,6 +3249,10 @@ function toggleDisplay(id, type) { if ($this->call_as_apikey) { $get['call_as_apikey'] = $this->call_as_apikey; } + if ($this->using_session_secret) { + $get['ss'] = '1'; + } + $get['method'] = $method; $get['session_key'] = $this->session_key; $get['api_key'] = $this->api_key; @@ -3241,7 +3350,7 @@ function toggleDisplay(id, type) { return $result; } - private function post_upload_request($method, $params, $file, $server_addr = null) { + protected function post_upload_request($method, $params, $file, $server_addr = null) { $server_addr = $server_addr ? $server_addr : $this->server_addr; list($get, $post) = $this->finalize_params($method, $params); $get_string = $this->create_url_string($get); @@ -3345,6 +3454,8 @@ class FacebookAPIErrorCodes { const API_EC_VERSION = 12; const API_EC_INTERNAL_FQL_ERROR = 13; const API_EC_HOST_PUP = 14; + const API_EC_SESSION_SECRET_NOT_ALLOWED = 15; + const API_EC_HOST_READONLY = 16; /* * PARAMETER ERRORS @@ -3372,6 +3483,8 @@ class FacebookAPIErrorCodes { const API_EC_PARAM_BAD_EID = 150; const API_EC_PARAM_UNKNOWN_CITY = 151; const API_EC_PARAM_BAD_PAGE_TYPE = 152; + const API_EC_PARAM_BAD_LOCALE = 170; + const API_EC_PARAM_BLOCKED_NOTIFICATION = 180; /* * USER PERMISSIONS ERRORS @@ -3394,6 +3507,7 @@ class FacebookAPIErrorCodes { const API_EC_PERMISSION_EVENT = 290; const API_EC_PERMISSION_LARGE_FBML_TEMPLATE = 291; const API_EC_PERMISSION_LIVEMESSAGE = 292; + const API_EC_PERMISSION_CREATE_EVENT = 296; const API_EC_PERMISSION_RSVP_EVENT = 299; /* @@ -3469,6 +3583,8 @@ class FacebookAPIErrorCodes { const FQL_EC_EXTENDED_PERMISSION = 612; const FQL_EC_RATE_LIMIT_EXCEEDED = 613; const FQL_EC_UNRESOLVED_DEPENDENCY = 614; + const FQL_EC_INVALID_SEARCH = 615; + const FQL_EC_CONTAINS_ERROR = 616; const API_EC_REF_SET_FAILED = 700; @@ -3506,6 +3622,7 @@ class FacebookAPIErrorCodes { * EVENT API ERRORS */ const API_EC_EVENT_INVALID_TIME = 1000; + const API_EC_EVENT_NAME_LOCKED = 1001; /* * INFO BOX ERRORS @@ -3566,6 +3683,21 @@ class FacebookAPIErrorCodes { const API_EC_COMMENTS_INVALID_POST = 1705; const API_EC_COMMENTS_INVALID_REMOVE = 1706; + /* + * GIFTS + */ + const API_EC_GIFTS_UNKNOWN = 1900; + + /* + * APPLICATION MORATORIUM ERRORS + */ + const API_EC_DISABLED_ALL = 2000; + const API_EC_DISABLED_STATUS = 2001; + const API_EC_DISABLED_FEED_STORIES = 2002; + const API_EC_DISABLED_NOTIFICATIONS = 2003; + const API_EC_DISABLED_REQUESTS = 2004; + const API_EC_DISABLED_EMAIL = 2005; + /** * This array is no longer maintained; to view the description of an error * code, please look at the message element of the API response or visit -- cgit v1.2.3-54-g00ecf From 5621f8583546458c19d2e032fb67bfa9ceb7ccdd Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 30 Dec 2009 23:09:12 +0000 Subject: Change inline CSS stylesheet to be on a single line so it doens't blow out syntax highlighting in my editor --- plugins/Facebook/facebookaction.php | 58 +------------------------------------ 1 file changed, 1 insertion(+), 57 deletions(-) diff --git a/plugins/Facebook/facebookaction.php b/plugins/Facebook/facebookaction.php index 24bf215fd..c25740fb8 100644 --- a/plugins/Facebook/facebookaction.php +++ b/plugins/Facebook/facebookaction.php @@ -294,63 +294,7 @@ class FacebookAction extends Action $app_props = $this->facebook->api_client->Admin_getAppProperties(array('icon_url')); $icon_url = $app_props['icon_url']; - $style = ''; + $style = ''; $this->xw->openMemory(); -- cgit v1.2.3-54-g00ecf From 962eed904c53980c0e037e78daa701974faed9c1 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 31 Dec 2009 22:32:10 +0000 Subject: - Use a stripped down new notice form for FB app because FB canvas apps can't support image upload via multipart/form-data (and location sharing is iffy). - Deal with new error code 100 from Facebook, which seem to be for inactive accounts. --- plugins/Facebook/facebookaction.php | 35 +----- plugins/Facebook/facebooknoticeform.php | 206 ++++++++++++++++++++++++++++++++ plugins/Facebook/facebookutil.php | 16 +-- 3 files changed, 216 insertions(+), 41 deletions(-) create mode 100644 plugins/Facebook/facebooknoticeform.php diff --git a/plugins/Facebook/facebookaction.php b/plugins/Facebook/facebookaction.php index c25740fb8..6abf31b0b 100644 --- a/plugins/Facebook/facebookaction.php +++ b/plugins/Facebook/facebookaction.php @@ -32,7 +32,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { } require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php'; -require_once INSTALLDIR . '/lib/noticeform.php'; +require_once INSTALLDIR . '/plugins/Facebook/facebooknoticeform.php'; class FacebookAction extends Action { @@ -406,39 +406,6 @@ class FacebookAction extends Action } -class FacebookNoticeForm extends NoticeForm -{ - - var $post_action = null; - - /** - * Constructor - * - * @param HTMLOutputter $out output channel - * @param string $action action to return to, if any - * @param string $content content to pre-fill - */ - - function __construct($out=null, $action=null, $content=null, - $post_action=null, $user=null) - { - parent::__construct($out, $action, $content, $user); - $this->post_action = $post_action; - } - - /** - * Action of the form - * - * @return string URL of the action - */ - - function action() - { - return $this->post_action; - } - -} - class FacebookNoticeList extends NoticeList { diff --git a/plugins/Facebook/facebooknoticeform.php b/plugins/Facebook/facebooknoticeform.php new file mode 100644 index 000000000..5989147f4 --- /dev/null +++ b/plugins/Facebook/facebooknoticeform.php @@ -0,0 +1,206 @@ +. + * + * @category Form + * @package StatusNet + * @author Evan Prodromou + * @author Sarven Capadisli + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +require_once INSTALLDIR . '/lib/form.php'; + +/** + * Form for posting a notice from within the Facebook app + * + * @category Form + * @package StatusNet + * @author Evan Prodromou + * @author Sarven Capadisli + * @author Zach Copey + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see HTMLOutputter + */ + +class FacebookNoticeForm extends Form +{ + /** + * Current action, used for returning to this page. + */ + + var $action = null; + + /** + * Pre-filled content of the form + */ + + var $content = null; + + /** + * The current user + */ + + var $user = null; + + /** + * The notice being replied to + */ + + var $inreplyto = null; + + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param string $action action to return to, if any + * @param string $content content to pre-fill + */ + + function __construct($out=null, $action=null, $content=null, $post_action=null, $user=null, $inreplyto=null) + { + parent::__construct($out); + + $this->action = $action; + $this->post_action = $post_action; + $this->content = $content; + $this->inreplyto = $inreplyto; + + if ($user) { + $this->user = $user; + } else { + $this->user = common_current_user(); + } + + // Note: Facebook doesn't allow multipart/form-data posting to + // canvas pages, so don't try to set it--no file uploads, at + // least not this way. It can be done using multiple servers + // and iFrames, but it's a pretty hacky process. + } + + /** + * ID of the form + * + * @return string ID of the form + */ + + function id() + { + return 'form_notice'; + } + + /** + * Class of the form + * + * @return string class of the form + */ + + function formClass() + { + return 'form_notice'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return $this->post_action; + } + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _('Send a notice')); + } + + /** + * Data elements + * + * @return void + */ + + function formData() + { + if (Event::handle('StartShowNoticeFormData', array($this))) { + $this->out->element('label', array('for' => 'notice_data-text'), + sprintf(_('What\'s up, %s?'), $this->user->nickname)); + // XXX: vary by defined max size + $this->out->element('textarea', array('id' => 'notice_data-text', + 'cols' => 35, + 'rows' => 4, + 'name' => 'status_textarea'), + ($this->content) ? $this->content : ''); + + $contentLimit = Notice::maxContent(); + + if ($contentLimit > 0) { + $this->out->elementStart('dl', 'form_note'); + $this->out->element('dt', null, _('Available characters')); + $this->out->element('dd', array('id' => 'notice_text-count'), + $contentLimit); + $this->out->elementEnd('dl'); + } + + if ($this->action) { + $this->out->hidden('notice_return-to', $this->action, 'returnto'); + } + $this->out->hidden('notice_in-reply-to', $this->inreplyto, 'inreplyto'); + + Event::handle('StartShowNoticeFormData', array($this)); + } + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->element('input', array('id' => 'notice_action-submit', + 'class' => 'submit', + 'name' => 'status_submit', + 'type' => 'submit', + 'value' => _('Send'))); + } +} diff --git a/plugins/Facebook/facebookutil.php b/plugins/Facebook/facebookutil.php index 2ec6db6b8..ac532e18b 100644 --- a/plugins/Facebook/facebookutil.php +++ b/plugins/Facebook/facebookutil.php @@ -138,21 +138,23 @@ function facebookBroadcastNotice($notice) $code = $e->getCode(); - common_log(LOG_WARNING, 'Facebook returned error code ' . - $code . ': ' . $e->getMessage()); - common_log(LOG_WARNING, - 'Unable to update Facebook status for ' . - "$user->nickname (user id: $user->id)!"); + $msg = "Facebook returned error code $code: " . + $e->getMessage() . ' - ' . + "Unable to update Facebook status (notice $notice->id) " . + "for $user->nickname (user id: $user->id)!"; - if ($code == 200 || $code == 250) { + common_log(LOG_WARNING, $msg); + if ($code == 100 || $code == 200 || $code == 250) { + + // 100 The account is 'inactive' (probably - this is not well documented) // 200 The application does not have permission to operate on the passed in uid parameter. // 250 Updating status requires the extended permission status_update or publish_stream. // see: http://wiki.developers.facebook.com/index.php/Users.setStatus#Example_Return_XML remove_facebook_app($flink); - } else { + } else { // Try sending again later. -- cgit v1.2.3-54-g00ecf From e6c8f6a8f81eb62226954275ff157838b7f51107 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 31 Dec 2009 22:53:46 +0000 Subject: Removed crazy redundant broadcasting of notices by the FB app --- plugins/Facebook/facebookaction.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/Facebook/facebookaction.php b/plugins/Facebook/facebookaction.php index 6abf31b0b..bf9c037a5 100644 --- a/plugins/Facebook/facebookaction.php +++ b/plugins/Facebook/facebookaction.php @@ -399,9 +399,6 @@ class FacebookAction extends Action common_broadcast_notice($notice); - // Also update the user's Facebook status - facebookBroadcastNotice($notice); - } } -- cgit v1.2.3-54-g00ecf From c11b339dc385ef3fa2aef7d53cdfae4a03cdfa96 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Fri, 1 Jan 2010 19:20:12 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans --- locale/ar/LC_MESSAGES/statusnet.po | 35 +- locale/arz/LC_MESSAGES/statusnet.po | 65 +- locale/bg/LC_MESSAGES/statusnet.po | 26 +- locale/ca/LC_MESSAGES/statusnet.po | 26 +- locale/cs/LC_MESSAGES/statusnet.po | 26 +- locale/de/LC_MESSAGES/statusnet.po | 26 +- locale/el/LC_MESSAGES/statusnet.po | 26 +- locale/en_GB/LC_MESSAGES/statusnet.po | 39 +- locale/es/LC_MESSAGES/statusnet.po | 26 +- locale/fa/LC_MESSAGES/statusnet.po | 28 +- locale/fi/LC_MESSAGES/statusnet.po | 26 +- locale/fr/LC_MESSAGES/statusnet.po | 34 +- locale/ga/LC_MESSAGES/statusnet.po | 26 +- locale/he/LC_MESSAGES/statusnet.po | 26 +- locale/hsb/LC_MESSAGES/statusnet.po | 32 +- locale/ia/LC_MESSAGES/statusnet.po | 158 +-- locale/is/LC_MESSAGES/statusnet.po | 26 +- locale/it/LC_MESSAGES/statusnet.po | 26 +- locale/ja/LC_MESSAGES/statusnet.po | 28 +- locale/ko/LC_MESSAGES/statusnet.po | 26 +- locale/mk/LC_MESSAGES/statusnet.po | 274 ++--- locale/nb/LC_MESSAGES/statusnet.po | 26 +- locale/nl/LC_MESSAGES/statusnet.po | 40 +- locale/nn/LC_MESSAGES/statusnet.po | 26 +- locale/pl/LC_MESSAGES/statusnet.po | 34 +- locale/pt/LC_MESSAGES/statusnet.po | 26 +- locale/pt_BR/LC_MESSAGES/statusnet.po | 1981 +++++++++++++++++---------------- locale/ru/LC_MESSAGES/statusnet.po | 26 +- locale/statusnet.po | 22 +- locale/sv/LC_MESSAGES/statusnet.po | 26 +- locale/te/LC_MESSAGES/statusnet.po | 26 +- locale/tr/LC_MESSAGES/statusnet.po | 26 +- locale/uk/LC_MESSAGES/statusnet.po | 29 +- locale/vi/LC_MESSAGES/statusnet.po | 26 +- locale/zh_CN/LC_MESSAGES/statusnet.po | 26 +- locale/zh_TW/LC_MESSAGES/statusnet.po | 26 +- 36 files changed, 1610 insertions(+), 1761 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 7053fbc47..73e751837 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:07+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:13:46+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -1676,7 +1676,7 @@ msgstr "رسالة شخصية" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "أرسل" @@ -2363,9 +2363,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "" #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "تعذّر حفظ الوسوم." +msgstr "لم يمكن حفظ تفضيلات الموقع." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -3516,7 +3515,7 @@ msgstr "صورة" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "اوسم المستخدم" #: actions/tagother.php:151 msgid "" @@ -4596,11 +4595,11 @@ msgstr "نوع ملف غير معروف" #: lib/imagefile.php:217 msgid "MB" -msgstr "" +msgstr "ميجابايت" #: lib/imagefile.php:219 msgid "kB" -msgstr "" +msgstr "كيلوبايت" #: lib/jabber.php:191 #, php-format @@ -4873,33 +4872,29 @@ msgstr "أرسل إشعارًا مباشرًا" msgid "To" msgstr "إلى" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "المحارف المتوفرة" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "أرسل إشعارًا" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "ما الأخبار يا %s؟" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "أرفق" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "أرفق ملفًا" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index eadbe6c6e..e1fa2621f 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:10+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:13:49+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -121,7 +121,7 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:94 #: actions/apiaccountupdateprofilecolors.php:118 msgid "API method not found." -msgstr "لم يتم العثور على وسيلة API." +msgstr "لم يتم العثور على وسيله API." #: actions/apiaccountupdatedeliverydevice.php:85 #: actions/apiaccountupdateprofile.php:89 @@ -185,7 +185,7 @@ msgstr "تعذّر تحديث تصميمك." #: actions/apiblockcreate.php:105 msgid "You cannot block yourself!" -msgstr "ا يمكنك منع نفسك!" +msgstr "لا يمكنك منع نفسك!" #: actions/apiblockcreate.php:126 msgid "Block user failed." @@ -429,11 +429,11 @@ msgstr "لا إشعار كهذا." #: actions/apistatusesretweet.php:83 msgid "Cannot repeat your own notice." -msgstr "لا يمكنك تكرار ملحوظتك الخاصة." +msgstr "لا يمكنك تكرار ملحوظتك الخاصه." #: actions/apistatusesretweet.php:91 msgid "Already repeated that notice." -msgstr "كرر بالفعل هذه الملاحظة." +msgstr "كرر بالفعل هذه الملاحظه." #: actions/apistatusesshow.php:138 msgid "Status deleted." @@ -1236,11 +1236,11 @@ msgstr "اختيار لبعض المستخدمين المتميزين على %s" #: actions/file.php:34 msgid "No notice ID." -msgstr "لا رقم ملاحظة." +msgstr "لا رقم ملاحظه." #: actions/file.php:38 msgid "No notice." -msgstr "لا ملاحظة." +msgstr "لا ملاحظه." #: actions/file.php:42 msgid "No attachments." @@ -1248,7 +1248,7 @@ msgstr "لا مرفقات." #: actions/file.php:51 msgid "No uploaded attachments." -msgstr "لا مرفقات مرفوعة." +msgstr "لا مرفقات مرفوعه." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1675,7 +1675,7 @@ msgstr "رساله شخصية" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "أرسل" @@ -2362,9 +2362,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "" #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "تعذّر حفظ الوسوم." +msgstr "لم يمكن حفظ تفضيلات الموقع." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -2763,15 +2762,15 @@ msgstr "" #: actions/repeat.php:64 actions/repeat.php:71 msgid "No notice specified." -msgstr "لا ملاحظة محددة." +msgstr "لا ملاحظه محدده." #: actions/repeat.php:76 msgid "You can't repeat your own notice." -msgstr "لا يمكنك تكرار ملاحظتك الشخصية." +msgstr "لا يمكنك تكرار ملاحظتك الشخصيه." #: actions/repeat.php:90 msgid "You already repeated that notice." -msgstr "أنت كررت هذه الملاحظة بالفعل." +msgstr "أنت كررت هذه الملاحظه بالفعل." #: actions/repeat.php:114 lib/noticelist.php:621 msgid "Repeated" @@ -3515,7 +3514,7 @@ msgstr "صورة" #: actions/tagother.php:141 msgid "Tag user" -msgstr "" +msgstr "اوسم المستخدم" #: actions/tagother.php:151 msgid "" @@ -3550,7 +3549,7 @@ msgstr "لم تمنع هذا المستخدم." #: actions/unsandbox.php:72 msgid "User is not sandboxed." -msgstr "المستخدم ليس في صندوق الرمل." +msgstr "المستخدم ليس فى صندوق الرمل." #: actions/unsilence.php:72 msgid "User is not silenced." @@ -3859,7 +3858,7 @@ msgstr "" #: classes/Notice.php:1361 #, php-format msgid "RT @%1$s %2$s" -msgstr "آر تي @%1$s %2$s" +msgstr "آر تى @%1$s %2$s" #: classes/User.php:368 #, php-format @@ -4297,7 +4296,7 @@ msgstr "" #: lib/command.php:664 #, php-format msgid "Could not create login token for %s" -msgstr "" +msgstr "لم يمكن إنشاء توكن الولوج ل%s" #: lib/command.php:669 #, php-format @@ -4595,11 +4594,11 @@ msgstr "نوع ملف غير معروف" #: lib/imagefile.php:217 msgid "MB" -msgstr "" +msgstr "ميجابايت" #: lib/imagefile.php:219 msgid "kB" -msgstr "" +msgstr "كيلوبايت" #: lib/jabber.php:191 #, php-format @@ -4872,33 +4871,29 @@ msgstr "أرسل إشعارًا مباشرًا" msgid "To" msgstr "إلى" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "المحارف المتوفرة" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "أرسل إشعارًا" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "ما الأخبار يا %s؟" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "أرفق" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "أرفق ملفًا" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 @@ -4932,7 +4927,7 @@ msgstr "فى السياق" #: lib/noticelist.php:548 msgid "Repeated by" -msgstr "مكرر بواسطه" +msgstr "مكرر بواسطة" #: lib/noticelist.php:577 msgid "Reply to this notice" @@ -5168,7 +5163,7 @@ msgstr "غير مشترك!" #: lib/subs.php:133 msgid "Couldn't delete self-subscription." -msgstr "م يمكن حذف اشتراك ذاتي." +msgstr "لم يمكن حذف اشتراك ذاتى." #: lib/subs.php:146 msgid "Couldn't delete subscription." diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 4f85d85d7..74dece9f0 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:13+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:13:53+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -1731,7 +1731,7 @@ msgstr "Лично съобщение" msgid "Optionally add a personal message to the invitation." msgstr "Може да добавите и лично съобщение към поканата." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Прати" @@ -5051,33 +5051,29 @@ msgstr "Изпращане на пряко съобщеие" msgid "To" msgstr "До" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Налични знаци" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Изпращане на бележка" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Какво става, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Прикрепяне" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Прикрепяне на файл" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 3c275d0ce..53e124013 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:17+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:13:56+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -1750,7 +1750,7 @@ msgstr "Missatge personal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalment pots afegir un missatge a la invitació." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Envia" @@ -5104,33 +5104,29 @@ msgstr "Enviar notificació directa" msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Caràcters disponibles" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar notificació" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Què tal, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Adjunta" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Adjunta un fitxer" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index aa5d77f2e..a17e00abc 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:19+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:13:59+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -1749,7 +1749,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Odeslat" @@ -5072,35 +5072,31 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6 a více znaků" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Nové sdělení" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Co se děje %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 91ca2e0c0..e0db02303 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:23+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:02+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -1750,7 +1750,7 @@ msgstr "" "Wenn du möchtest kannst du zu der Einladung eine persönliche Nachricht " "anfügen." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Senden" @@ -5169,35 +5169,31 @@ msgstr "Versende eine direkte Nachricht" msgid "To" msgstr "An" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "Verfügbare Zeichen" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Nachricht versenden" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Was ist los, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index 0ccb09a9b..c3217387d 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:26+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:05+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -1719,7 +1719,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "" @@ -4971,33 +4971,29 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Διαθέσιμοι χαρακτήρες" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index 5912c76dd..f3a4ea2f5 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:30+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:08+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -839,9 +839,8 @@ msgid "You can only delete local users." msgstr "You can only delete local users." #: actions/deleteuser.php:110 actions/deleteuser.php:133 -#, fuzzy msgid "Delete user" -msgstr "Delete" +msgstr "Delete user" #: actions/deleteuser.php:135 msgid "" @@ -865,23 +864,21 @@ msgid "Design settings for this StatusNet site." msgstr "Design settings for this StausNet site." #: actions/designadminpanel.php:275 -#, fuzzy msgid "Invalid logo URL." -msgstr "Invalid size." +msgstr "nvalid logo URL." #: actions/designadminpanel.php:279 -#, fuzzy, php-format +#, php-format msgid "Theme not available: %s" -msgstr "This page is not available in a " +msgstr "Theme not available: %s" #: actions/designadminpanel.php:375 msgid "Change logo" msgstr "Change logo" #: actions/designadminpanel.php:380 -#, fuzzy msgid "Site logo" -msgstr "Invite" +msgstr "Site logo" #: actions/designadminpanel.php:387 #, fuzzy @@ -1750,7 +1747,7 @@ msgstr "Personal message" msgid "Optionally add a personal message to the invitation." msgstr "Optionally add a personal message to the invitation." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Send" @@ -5107,33 +5104,29 @@ msgstr "Send a direct notice" msgid "To" msgstr "To" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Available characters" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send a notice" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "What's up, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 5804171cb..ec21517c5 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:32+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:11+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -1757,7 +1757,7 @@ msgstr "Mensaje Personal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente añada un mensaje personalizado a su invitación." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Enviar" @@ -5163,35 +5163,31 @@ msgstr "Enviar un aviso directo" msgid "To" msgstr "Para" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "Caracteres disponibles" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Enviar un aviso" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "¿Qué tal, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index c62aeb47d..b4257e14e 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:39+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:21+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 @@ -1722,7 +1722,7 @@ msgstr "پیام خصوصی" msgid "Optionally add a personal message to the invitation." msgstr "اگر دوست دارید می‌توانید یک پیام به همراه دعوت نامه ارسال کنید." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "فرستادن" @@ -2017,7 +2017,7 @@ msgstr "نوع محتوا " #: actions/oembed.php:160 msgid "Only " -msgstr "فقط" +msgstr " فقط" #: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1031 #: lib/api.php:1059 lib/api.php:1169 @@ -4935,33 +4935,29 @@ msgstr "یک آگهی مستقیم بفرستید." msgid "To" msgstr "به" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "کاراکترهای موجود" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "یک آگهی بفرستید" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "چه شده %s ?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "ضمیمه کردن" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "یک فایل ضمیمه کنید" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index fb1bf1900..03efec29f 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:36+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:17+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -1751,7 +1751,7 @@ msgstr "Henkilökohtainen viesti" msgid "Optionally add a personal message to the invitation." msgstr "Voit myös lisätä oman viestisi kutsuun" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Lähetä" @@ -5150,33 +5150,29 @@ msgstr "Lähetä suora viesti" msgid "To" msgstr "Vastaanottaja" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Sallitut merkit" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Lähetä päivitys" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Mitä teet juuri nyt, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 58cb965af..5afa01f2d 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:42+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:25+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -1768,7 +1768,7 @@ msgstr "Message personnel" msgid "Optionally add a personal message to the invitation." msgstr "Ajouter un message personnel à l’invitation (optionnel)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Envoyer" @@ -2456,7 +2456,7 @@ msgstr "Indiquez votre emplacement, ex.: « Ville, État (ou région), Pays »" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Partager ma localisation lorsque je poste des avis" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2517,9 +2517,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Impossible de mettre à jour l’auto-abonnement." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Impossible d’enregistrer les marques." +msgstr "Impossible d’enregistrer les préférences de localisation." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -5292,34 +5291,31 @@ msgstr "Envoyer un message direct" msgid "To" msgstr "À" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Caractères restants" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Envoyer un avis" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Quoi de neuf, %s ?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Attacher" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Attacher un fichier" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." -msgstr "" +#: lib/noticeform.php:213 +#, fuzzy +msgid "Share your location" +msgstr "Partager votre localisation " #: lib/noticelist.php:420 #, php-format diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 2f2ebe62c..ad49c7dc4 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:45+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:28+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -1789,7 +1789,7 @@ msgstr "Mensaxe persoal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente engadir unha mensaxe persoal á invitación." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Enviar" @@ -5329,35 +5329,31 @@ msgstr "Eliminar chío" msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6 ou máis caracteres" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Dar un toque" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "¿Que pasa, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 0522937d9..6ad6d9bb6 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:49+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:31+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -1760,7 +1760,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "שלח" @@ -5073,35 +5073,31 @@ msgstr "" msgid "To" msgstr "אל" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "לפחות 6 אותיות" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "הודעה חדשה" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "מה המצב %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index 515d49607..a2f5a9d6e 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:52+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:34+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -1682,7 +1682,7 @@ msgstr "Wosobinska powěsć" msgid "Optionally add a personal message to the invitation." msgstr "Wosobinsku powěsć po dobrozdaću přeprošenju přidać." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Pósłać" @@ -2369,9 +2369,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "" #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Profil njeje so składować dał." +msgstr "Nastajenja městna njedachu so składować." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -4858,33 +4857,29 @@ msgstr "Direktnu zdźělenku pósłać" msgid "To" msgstr "Komu" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "K dispoziciji stejace znamješka" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Zdźělenku pósłać" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Připowěsnyć" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Dataju připowěsnyć" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 @@ -5058,9 +5053,8 @@ msgid "Popular" msgstr "Woblubowany" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Tutu zdźělenku wospjetować" +msgstr "Tutu zdźělenku wospjetować?" #: lib/repeatform.php:132 msgid "Repeat this notice" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index f06e4ac48..0d1552ae7 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:55+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:37+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -1746,7 +1746,7 @@ msgstr "Message personal" msgid "Optionally add a personal message to the invitation." msgstr "Si tu vole, adde un message personal al invitation." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Inviar" @@ -2299,35 +2299,35 @@ msgstr "Directorio al fundos" #: actions/pathsadminpanel.php:293 msgid "SSL" -msgstr "" +msgstr "SSL" #: actions/pathsadminpanel.php:296 actions/siteadminpanel.php:346 msgid "Never" -msgstr "" +msgstr "Nunquam" #: actions/pathsadminpanel.php:297 msgid "Sometimes" -msgstr "" +msgstr "Alcun vices" #: actions/pathsadminpanel.php:298 msgid "Always" -msgstr "" +msgstr "Sempre" #: actions/pathsadminpanel.php:302 msgid "Use SSL" -msgstr "" +msgstr "Usar SSL" #: actions/pathsadminpanel.php:303 msgid "When to use SSL" -msgstr "" +msgstr "Quando usar SSL" #: actions/pathsadminpanel.php:308 msgid "SSL Server" -msgstr "" +msgstr "Servitor SSL" #: actions/pathsadminpanel.php:309 msgid "Server to direct SSL requests to" -msgstr "" +msgstr "Servitor verso le qual diriger le requestas SSL" #: actions/pathsadminpanel.php:325 msgid "Save paths" @@ -2426,7 +2426,7 @@ msgstr "Ubi tu es, como \"Citate, Stato (o Region), Pais\"" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Divulgar mi loco actual quando io publica notas" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2486,9 +2486,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Non poteva actualisar usator pro autosubscription." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Non poteva salveguardar etiquettas." +msgstr "Non poteva salveguardar le preferentias de loco." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -3385,184 +3384,190 @@ msgstr "Servitor" #: actions/siteadminpanel.php:306 msgid "Site's server hostname." -msgstr "" +msgstr "Nomine de host del servitor del sito." #: actions/siteadminpanel.php:310 msgid "Fancy URLs" -msgstr "" +msgstr "URLs de luxo" #: actions/siteadminpanel.php:312 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" +msgstr "Usar URLs de luxo (plus legibile e memorabile)?" #: actions/siteadminpanel.php:318 msgid "Access" -msgstr "" +msgstr "Accesso" #: actions/siteadminpanel.php:321 msgid "Private" -msgstr "" +msgstr "Private" #: actions/siteadminpanel.php:323 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "Prohiber al usatores anonyme (sin session aperte) de vider le sito?" #: actions/siteadminpanel.php:327 msgid "Invite only" -msgstr "" +msgstr "Solmente per invitation" #: actions/siteadminpanel.php:329 msgid "Make registration invitation only." -msgstr "" +msgstr "Permitter le registration solmente al invitatos." #: actions/siteadminpanel.php:333 msgid "Closed" -msgstr "" +msgstr "Claudite" #: actions/siteadminpanel.php:335 msgid "Disable new registrations." -msgstr "" +msgstr "Disactivar le creation de nove contos." #: actions/siteadminpanel.php:341 msgid "Snapshots" -msgstr "" +msgstr "Instantaneos" #: actions/siteadminpanel.php:344 msgid "Randomly during Web hit" -msgstr "" +msgstr "Aleatorimente durante un accesso web" #: actions/siteadminpanel.php:345 msgid "In a scheduled job" -msgstr "" +msgstr "In un processo planificate" #: actions/siteadminpanel.php:347 msgid "Data snapshots" -msgstr "" +msgstr "Instantaneos de datos" #: actions/siteadminpanel.php:348 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "Quando inviar datos statistic al servitores de status.net" #: actions/siteadminpanel.php:353 msgid "Frequency" -msgstr "" +msgstr "Frequentia" #: actions/siteadminpanel.php:354 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "Un instantaneo essera inviate a cata N accessos web" #: actions/siteadminpanel.php:359 msgid "Report URL" -msgstr "" +msgstr "URL pro reporto" #: actions/siteadminpanel.php:360 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "Le instantaneos essera inviate a iste URL" #: actions/siteadminpanel.php:367 msgid "Limits" -msgstr "" +msgstr "Limites" #: actions/siteadminpanel.php:370 msgid "Text limit" -msgstr "" +msgstr "Limite de texto" #: actions/siteadminpanel.php:370 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "Numero maxime de characteres pro notas." #: actions/siteadminpanel.php:374 msgid "Dupe limit" -msgstr "" +msgstr "Limite de duplicatos" #: actions/siteadminpanel.php:374 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"Quante tempore (in secundas) le usatores debe attender ante de poter " +"publicar le mesme cosa de novo." #: actions/siteadminpanel.php:388 actions/useradminpanel.php:313 msgid "Save site settings" -msgstr "" +msgstr "Salveguardar configurationes del sito" #: actions/smssettings.php:58 msgid "SMS Settings" -msgstr "" +msgstr "Configuration SMS" #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "" +msgstr "Tu pote reciper messages SMS per e-mail ab %%site.name%%." #: actions/smssettings.php:91 msgid "SMS is not available." -msgstr "" +msgstr "SMS non es disponibile." #: actions/smssettings.php:112 msgid "Current confirmed SMS-enabled phone number." -msgstr "" +msgstr "Numero de telephono actual e confirmate con servicio SMS." #: actions/smssettings.php:123 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "Iste numero de telephono attende confirmation." #: actions/smssettings.php:130 msgid "Confirmation code" -msgstr "" +msgstr "Codice de confirmation" #: actions/smssettings.php:131 msgid "Enter the code you received on your phone." -msgstr "" +msgstr "Entra le codice que tu ha recipite in tu telephono." #: actions/smssettings.php:138 msgid "SMS Phone number" -msgstr "" +msgstr "Numero de telephono pro SMS" #: actions/smssettings.php:140 msgid "Phone number, no punctuation or spaces, with area code" -msgstr "" +msgstr "Numero de telephono, sin punctuation o spatios, con indicativo" #: actions/smssettings.php:174 msgid "" "Send me notices through SMS; I understand I may incur exorbitant charges " "from my carrier." msgstr "" +"Invia me notas per SMS; io comprende que io pote incurrer exorbitante costos " +"de mi operator." #: actions/smssettings.php:306 msgid "No phone number." -msgstr "" +msgstr "Nulle numero de telephono." #: actions/smssettings.php:311 msgid "No carrier selected." -msgstr "" +msgstr "Nulle operator seligite." #: actions/smssettings.php:318 msgid "That is already your phone number." -msgstr "" +msgstr "Isto es ja tu numero de telephono." #: actions/smssettings.php:321 msgid "That phone number already belongs to another user." -msgstr "" +msgstr "Iste numero de telephono pertine ja a un altere usator." #: actions/smssettings.php:347 msgid "" "A confirmation code was sent to the phone number you added. Check your phone " "for the code and instructions on how to use it." msgstr "" +"Un codice de confirmation ha essite inviate al numero de telephono que tu ha " +"addite. Vide in tu telephono le codice e le instructiones super como usar lo." #: actions/smssettings.php:374 msgid "That is the wrong confirmation number." -msgstr "" +msgstr "Iste codice de confirmation es incorrecte." #: actions/smssettings.php:405 msgid "That is not your phone number." -msgstr "" +msgstr "Isto non es tu numero de telephono." #: actions/smssettings.php:465 msgid "Mobile carrier" -msgstr "" +msgstr "Operator de telephonia mobile" #: actions/smssettings.php:469 msgid "Select a carrier" -msgstr "" +msgstr "Selige un operator" #: actions/smssettings.php:476 #, php-format @@ -3570,51 +3575,56 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" +"Le operator de telephonia mobile de tu telephono. Si tu cognosce un operator " +"que accepta SMS via e-mail ma non es listate hic, invia e-mail pro informar " +"nos a %s." #: actions/smssettings.php:498 msgid "No code entered" -msgstr "" +msgstr "Nulle codice entrate" #: actions/subedit.php:70 msgid "You are not subscribed to that profile." -msgstr "" +msgstr "Tu non es subscribite a iste profilo." #: actions/subedit.php:83 msgid "Could not save subscription." -msgstr "" +msgstr "Non poteva salveguardar le subscription." #: actions/subscribe.php:55 msgid "Not a local user." -msgstr "" +msgstr "Le usator non es local." #: actions/subscribe.php:69 msgid "Subscribed" -msgstr "" +msgstr "Subscribite" #: actions/subscribers.php:50 #, php-format msgid "%s subscribers" -msgstr "" +msgstr "Subscriptores a %s" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "Subscriptores a %s, pagina %d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." -msgstr "" +msgstr "Iste personas seque tu notas." #: actions/subscribers.php:67 #, php-format msgid "These are the people who listen to %s's notices." -msgstr "" +msgstr "Iste personas seque le notas de %s." #: actions/subscribers.php:108 msgid "" "You have no subscribers. Try subscribing to people you know and they might " "return the favor" msgstr "" +"Tu non ha subscriptores. Tenta subscriber te a personas que tu cognosce e " +"illes poterea retornar te le favor." #: actions/subscribers.php:110 #, php-format @@ -5046,33 +5056,29 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index b90feacaf..fad9f2637 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:06:58+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:41+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -1738,7 +1738,7 @@ msgstr "Persónuleg skilaboð" msgid "Optionally add a personal message to the invitation." msgstr "Bættu persónulegum skilaboðum við boðskortið ef þú vilt." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Senda" @@ -5097,33 +5097,29 @@ msgstr "Senda bein skilaboð" msgid "To" msgstr "Til" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Leyfileg tákn" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Senda babl" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Hvað er að frétta %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index d7c2fcd98..698c7622c 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:01+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:44+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -1751,7 +1751,7 @@ msgstr "Messaggio personale" msgid "Optionally add a personal message to the invitation." msgstr "Puoi aggiungere un messaggio personale agli inviti." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Invia" @@ -5238,33 +5238,29 @@ msgstr "Invia un messaggio diretto" msgid "To" msgstr "A" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Caratteri disponibili" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Invia un messaggio" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Cosa succede, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Allega" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Allega un file" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index e8d2e9e0e..1fcd81324 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:04+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:47+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -1729,7 +1729,7 @@ msgstr "パーソナルメッセージ" msgid "Optionally add a personal message to the invitation." msgstr "任意に招待にパーソナルメッセージを加えてください。" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "送る" @@ -3755,7 +3755,7 @@ msgstr "そのIDはプロファイルではありません。" #: actions/unsubscribe.php:98 msgid "Unsubscribed" -msgstr "サブスクライブ解除済み" +msgstr "フォロー解除済み" #: actions/updateprofile.php:62 actions/userauthorization.php:330 #, php-format @@ -5092,33 +5092,29 @@ msgstr "直接つぶやきを送る" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "利用可能な文字" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "つぶやきを送る" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "最近どう %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 065170972..60cdf0922 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:07+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:50+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -1767,7 +1767,7 @@ msgstr "개인적인 메시지" msgid "Optionally add a personal message to the invitation." msgstr "초대장에 메시지 첨부하기." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "보내기" @@ -5123,33 +5123,29 @@ msgstr "직접 메시지 보내기" msgid "To" msgstr "에게" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "사용 가능한 글자" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "게시글 보내기" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "뭐하세요? %?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index c3f3aacb8..3e57278af 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:09+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:53+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -61,7 +61,7 @@ msgstr "%s и пријателите, страница %d" #: lib/personalgroupnav.php:100 #, php-format msgid "%s and friends" -msgstr "%s и пријателите" +msgstr "%s и пријатели" #: actions/all.php:99 #, php-format @@ -76,7 +76,7 @@ msgstr "Канал со пријатели на %s (RSS 2.0)" #: actions/all.php:115 #, php-format msgid "Feed for friends of %s (Atom)" -msgstr "Емитување за пријатели на %S (Atom)" +msgstr "Канал за пријатели на %S (Atom)" #: actions/all.php:127 #, php-format @@ -107,7 +107,7 @@ msgstr "" #: actions/all.php:165 msgid "You and friends" -msgstr "Вие и пријателите" +msgstr "Вие и пријатели" #: actions/allrss.php:119 actions/apitimelinefriends.php:122 #: actions/apitimelinehome.php:122 @@ -120,9 +120,8 @@ msgstr "" #: actions/apiaccountupdateprofile.php:97 #: actions/apiaccountupdateprofilebackgroundimage.php:94 #: actions/apiaccountupdateprofilecolors.php:118 -#, fuzzy msgid "API method not found." -msgstr "Кодот за потврда не е пронајден." +msgstr "API методот не епронајден." #: actions/apiaccountupdatedeliverydevice.php:85 #: actions/apiaccountupdateprofile.php:89 @@ -145,9 +144,8 @@ msgid "" msgstr "" #: actions/apiaccountupdatedeliverydevice.php:132 -#, fuzzy msgid "Could not update user." -msgstr "Корисникот не може да се освежи/" +msgstr "Не може да се ажурира корисник." #: actions/apiaccountupdateprofile.php:112 #: actions/apiaccountupdateprofilebackgroundimage.php:194 @@ -159,9 +157,8 @@ msgid "User has no profile." msgstr "Корисникот нема профил." #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." -msgstr "Профилот не може да се сними." +msgstr "Не може да се зачува профил." #: actions/apiaccountupdateprofilebackgroundimage.php:108 #: actions/apiaccountupdateprofileimage.php:97 @@ -183,9 +180,8 @@ msgstr "" #: actions/apiaccountupdateprofilebackgroundimage.php:187 #: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy msgid "Could not update your design." -msgstr "Корисникот не може да се освежи/" +msgstr "Не може да се ажурира вашиот дизајн." #: actions/apiblockcreate.php:105 msgid "You cannot block yourself!" @@ -329,7 +325,7 @@ msgstr "Неправилен прекар." #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." -msgstr "Домашната страница не е правилно URL." +msgstr "Главната страница не е валиден URL." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 #: actions/newgroup.php:142 actions/profilesettings.php:225 @@ -386,43 +382,42 @@ msgid "You have been blocked from that group by the admin." msgstr "" #: actions/apigroupjoin.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s." -msgstr "Не може да се пренасочи кон серверот: %s" +msgstr "Не може да се придружи корисник %s на група %s." #: actions/apigroupleave.php:114 -#, fuzzy msgid "You are not a member of this group." -msgstr "Не ни го испративте тој профил." +msgstr "Не сте член на оваа група" #: actions/apigroupleave.php:124 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s." -msgstr "OpenID формуларот не може да се креира:%s" +msgstr "Не може да се избрише корисник %s од група %s." #: actions/apigrouplist.php:95 -#, fuzzy, php-format +#, php-format msgid "%s's groups" -msgstr "Профил" +msgstr "%s групи" #: actions/apigrouplist.php:103 -#, fuzzy, php-format +#, php-format msgid "Groups %s is a member of on %s." -msgstr "Не ни го испративте тој профил." +msgstr "Групите %s се членови на %s." #: actions/apigrouplistall.php:90 actions/usergroups.php:62 #, php-format msgid "%s groups" -msgstr "" +msgstr "%s групи" #: actions/apigrouplistall.php:94 #, php-format msgid "groups on %s" -msgstr "" +msgstr "групи на %s" #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." -msgstr "" +msgstr "Методот бара POST или DELETE." #: actions/apistatusesdestroy.php:130 msgid "You may not delete another user's status." @@ -592,12 +587,12 @@ msgstr "" #: actions/avatarsettings.php:142 actions/avatarsettings.php:217 #: actions/grouplogo.php:210 actions/grouplogo.php:271 msgid "Preview" -msgstr "" +msgstr "Преглед" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 #: lib/noticelist.php:603 msgid "Delete" -msgstr "" +msgstr "Бриши" #: actions/avatarsettings.php:166 actions/grouplogo.php:233 msgid "Upload" @@ -605,7 +600,7 @@ msgstr "Товари" #: actions/avatarsettings.php:231 actions/grouplogo.php:286 msgid "Crop" -msgstr "" +msgstr "Отсечи" #: actions/avatarsettings.php:268 actions/disfavor.php:74 #: actions/emailsettings.php:238 actions/favor.php:75 actions/geocode.php:50 @@ -704,37 +699,34 @@ msgstr "Нема прекар" #: actions/groupbyid.php:83 actions/groupdesignsettings.php:97 #: actions/grouplogo.php:99 actions/groupmembers.php:83 #: actions/joingroup.php:83 actions/showgroup.php:137 -#, fuzzy msgid "No such group" -msgstr "Нема такво известување." +msgstr "Нема такваа група" #: actions/blockedfromgroup.php:90 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles" -msgstr "Корисникот нема профил." +msgstr "%s блокирани профили" #: actions/blockedfromgroup.php:93 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles, page %d" -msgstr "%s и пријателите" +msgstr "%s блокирани профили, страница %d" #: actions/blockedfromgroup.php:108 msgid "A list of the users blocked from joining this group." msgstr "" #: actions/blockedfromgroup.php:281 -#, fuzzy msgid "Unblock user from group" -msgstr "Нема таков корисник." +msgstr "Одблокирај корисник од група" #: actions/blockedfromgroup.php:313 lib/unblockform.php:69 msgid "Unblock" -msgstr "" +msgstr "Одблокирај" #: actions/blockedfromgroup.php:313 lib/unblockform.php:80 -#, fuzzy msgid "Unblock this user" -msgstr "Нема таков корисник." +msgstr "Одблокирај го овој корсник" #: actions/bookmarklet.php:50 msgid "Post to " @@ -784,9 +776,8 @@ msgid "The address \"%s\" has been confirmed for your account." msgstr "Адресата \"%s\" е потврдена за Вашата сметка." #: actions/conversation.php:99 -#, fuzzy msgid "Conversation" -msgstr "Локација" +msgstr "Конверзација" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:216 lib/searchgroupnav.php:82 @@ -805,7 +796,7 @@ msgstr "Не сте пријавени." #: actions/deletenotice.php:71 msgid "Can't delete this notice." -msgstr "" +msgstr "Не може да се избрише оваа забелешка." #: actions/deletenotice.php:103 msgid "" @@ -815,38 +806,35 @@ msgstr "" #: actions/deletenotice.php:109 actions/deletenotice.php:141 msgid "Delete notice" -msgstr "" +msgstr "Бриши забелешка" #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" msgstr "" #: actions/deletenotice.php:145 -#, fuzzy msgid "Do not delete this notice" -msgstr "Нема такво известување." +msgstr "Не ја бриши оваа забелешка" #: actions/deletenotice.php:146 lib/noticelist.php:603 msgid "Delete this notice" -msgstr "" +msgstr "Бриши ја оваа забелешка" #: actions/deletenotice.php:157 msgid "There was a problem with your session token. Try again, please." msgstr "" #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." -msgstr "Корисникот не може да се освежи/" +msgstr "Не можете да бришете корисници." #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "Може да ја користите локалната претплата." +msgstr "Може да бришете само локални корисници." #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" -msgstr "" +msgstr "Бриши корисник" #: actions/deleteuser.php:135 msgid "" @@ -855,68 +843,64 @@ msgid "" msgstr "" #: actions/deleteuser.php:148 lib/deleteuserform.php:77 -#, fuzzy msgid "Delete this user" -msgstr "Нема таков корисник." +msgstr "Избриши овој корисник" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/adminpanelaction.php:302 lib/groupnav.php:119 msgid "Design" -msgstr "" +msgstr "Дизајн" #: actions/designadminpanel.php:73 msgid "Design settings for this StatusNet site." -msgstr "" +msgstr "Нагодувања на дизајн на ова StatusNet место." #: actions/designadminpanel.php:275 -#, fuzzy msgid "Invalid logo URL." -msgstr "Погрешна големина." +msgstr "Погрешен URL на лого." #: actions/designadminpanel.php:279 -#, fuzzy, php-format +#, php-format msgid "Theme not available: %s" -msgstr "Оваа страница не е достапна во форматот кој Вие го прифаќате." +msgstr "Непосточка тема: %s" #: actions/designadminpanel.php:375 -#, fuzzy msgid "Change logo" -msgstr "Промени ја лозинката" +msgstr "Промени лого" #: actions/designadminpanel.php:380 -#, fuzzy msgid "Site logo" -msgstr "Ново известување" +msgstr "Лого знак на сајт" #: actions/designadminpanel.php:387 -#, fuzzy msgid "Change theme" -msgstr "Промени" +msgstr "Промени тема" #: actions/designadminpanel.php:404 -#, fuzzy msgid "Site theme" -msgstr "Ново известување" +msgstr "Тема на сајт" #: actions/designadminpanel.php:405 msgid "Theme for the site." -msgstr "" +msgstr "Тема на сајтот." #: actions/designadminpanel.php:417 lib/designsettings.php:101 msgid "Change background image" -msgstr "" +msgstr "Промена на слика на позадина" #: actions/designadminpanel.php:422 actions/designadminpanel.php:497 #: lib/designsettings.php:178 msgid "Background" -msgstr "" +msgstr "Позадина" #: actions/designadminpanel.php:427 -#, fuzzy, php-format +#, php-format msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." -msgstr "Ова е предолго. Максималната должина е 140 знаци." +msgstr "" +"Може да подигнете слика за позадина за ова место. Максималната големина на " +"податотеката е %1$s." #: actions/designadminpanel.php:457 lib/designsettings.php:139 msgid "On" @@ -935,28 +919,24 @@ msgid "Tile background image" msgstr "" #: actions/designadminpanel.php:488 lib/designsettings.php:170 -#, fuzzy msgid "Change colours" -msgstr "Промени ја лозинката" +msgstr "Промена на бои" #: actions/designadminpanel.php:510 lib/designsettings.php:191 -#, fuzzy msgid "Content" -msgstr "Поврзи се" +msgstr "Содржина" #: actions/designadminpanel.php:523 lib/designsettings.php:204 -#, fuzzy msgid "Sidebar" -msgstr "Барај" +msgstr "Странична лента" #: actions/designadminpanel.php:536 lib/designsettings.php:217 msgid "Text" -msgstr "" +msgstr "Текст" #: actions/designadminpanel.php:549 lib/designsettings.php:230 -#, fuzzy msgid "Links" -msgstr "Пријави се" +msgstr "Врски" #: actions/designadminpanel.php:577 lib/designsettings.php:247 msgid "Use defaults" @@ -982,7 +962,7 @@ msgstr "Сними" #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" -msgstr "" +msgstr "Зачувај дизајн" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" @@ -1217,9 +1197,8 @@ msgstr "" #: actions/favorited.php:65 lib/popularnoticesection.php:88 #: lib/publicgroupnav.php:93 -#, fuzzy msgid "Popular notices" -msgstr "Нема такво известување." +msgstr "Популарни забелешки" #: actions/favorited.php:67 #, fuzzy, php-format @@ -1279,19 +1258,16 @@ msgid "No notice ID." msgstr "Ново известување" #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Ново известување" +msgstr "Нема забелешка." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "Нема таков документ." +msgstr "Нема прикачувања." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Нема таков документ." +msgstr "Нема подигнато прикачувања." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -1311,9 +1287,8 @@ msgid "That user has blocked you from subscribing." msgstr "" #: actions/finishremotesubscribe.php:110 -#, fuzzy msgid "You are not authorized." -msgstr "Не е одобрено." +msgstr "Не сте авторизирани." #: actions/finishremotesubscribe.php:113 #, fuzzy @@ -1589,9 +1564,8 @@ msgstr "" "doc.im%%). Подолу " #: actions/imsettings.php:89 -#, fuzzy msgid "IM is not available." -msgstr "Оваа страница не е достапна во форматот кој Вие го прифаќате." +msgstr "ИП не се возможни." #: actions/imsettings.php:106 msgid "Current confirmed Jabber/GTalk address." @@ -1677,7 +1651,7 @@ msgstr "" #: actions/inbox.php:62 #, php-format msgid "Inbox for %s" -msgstr "" +msgstr "Приемно сандаче за %s" #: actions/inbox.php:115 msgid "This is your inbox, which lists your incoming private messages." @@ -1750,7 +1724,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Испрати" @@ -2362,9 +2336,8 @@ msgstr "" "повеќе за Вас." #: actions/profilesettings.php:99 -#, fuzzy msgid "Profile information" -msgstr "Непознат профил" +msgstr "Информации за профил" #: actions/profilesettings.php:108 lib/groupeditform.php:154 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" @@ -2418,7 +2391,7 @@ msgstr "" #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" -msgstr "" +msgstr "Ознаки" #: actions/profilesettings.php:147 msgid "" @@ -2427,7 +2400,7 @@ msgstr "" #: actions/profilesettings.php:151 actions/siteadminpanel.php:294 msgid "Language" -msgstr "" +msgstr "Јазик" #: actions/profilesettings.php:152 msgid "Preferred language" @@ -2453,16 +2426,16 @@ msgstr "Биографијата е предолга (максимумот е 14 #: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." -msgstr "" +msgstr "Не е избрана временска зона." #: actions/profilesettings.php:241 msgid "Language is too long (max 50 chars)." msgstr "" #: actions/profilesettings.php:253 actions/tagother.php:178 -#, fuzzy, php-format +#, php-format msgid "Invalid tag: \"%s\"" -msgstr "Невалидна домашна страница: '%s'" +msgstr "Невалидна ознака: \"%s\"" #: actions/profilesettings.php:302 msgid "Couldn't update user for autosubscribe." @@ -3027,9 +3000,8 @@ msgid "%s group, page %d" msgstr "" #: actions/showgroup.php:218 -#, fuzzy msgid "Group profile" -msgstr "Нема такво известување." +msgstr "Профил на група" #: actions/showgroup.php:263 actions/tagother.php:118 #: actions/userauthorization.php:167 lib/userprofile.php:177 @@ -3038,9 +3010,8 @@ msgstr "" #: actions/showgroup.php:274 actions/tagother.php:128 #: actions/userauthorization.php:179 lib/userprofile.php:194 -#, fuzzy msgid "Note" -msgstr "Известувања" +msgstr "Забелешка" #: actions/showgroup.php:284 lib/groupeditform.php:184 msgid "Aliases" @@ -3132,12 +3103,11 @@ msgstr "" #: actions/showmessage.php:113 #, php-format msgid "Message from %1$s on %2$s" -msgstr "" +msgstr "Порака од %1$s на %2$s" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "Известувања" +msgstr "Избришана забелешка" #: actions/showstream.php:73 #, php-format @@ -3210,9 +3180,9 @@ msgid "" msgstr "" #: actions/showstream.php:313 -#, fuzzy, php-format +#, php-format msgid "Repeat of %s" -msgstr "Одговори испратени до %s" +msgstr "Повторувања на %s" #: actions/silence.php:65 actions/unsilence.php:65 msgid "You cannot silence users on this site." @@ -3266,9 +3236,8 @@ msgid "General" msgstr "" #: actions/siteadminpanel.php:256 -#, fuzzy msgid "Site name" -msgstr "Ново известување" +msgstr "Име на сајт" #: actions/siteadminpanel.php:257 msgid "The name of your site, like \"Yourcompany Microblog\"" @@ -3296,13 +3265,12 @@ msgid "Contact email address for your site" msgstr "Нема регистрирана адреса за е-пошта за тој корисник." #: actions/siteadminpanel.php:277 -#, fuzzy msgid "Local" -msgstr "Локација" +msgstr "Локално" #: actions/siteadminpanel.php:288 msgid "Default timezone" -msgstr "" +msgstr "Основна временска зона" #: actions/siteadminpanel.php:289 msgid "Default timezone for the site; usually UTC." @@ -3310,16 +3278,15 @@ msgstr "" #: actions/siteadminpanel.php:295 msgid "Default site language" -msgstr "" +msgstr "Основен јазик" #: actions/siteadminpanel.php:303 msgid "URLs" msgstr "" #: actions/siteadminpanel.php:306 -#, fuzzy msgid "Server" -msgstr "Пронајди" +msgstr "Опслужувач" #: actions/siteadminpanel.php:306 msgid "Site's server hostname." @@ -4258,14 +4225,12 @@ msgid "Pagination" msgstr "" #: lib/action.php:1108 -#, fuzzy msgid "After" -msgstr "« Следни" +msgstr "После" #: lib/action.php:1116 -#, fuzzy msgid "Before" -msgstr "Предходни »" +msgstr "Пред" #: lib/action.php:1164 msgid "There was a problem with your session token." @@ -4288,9 +4253,8 @@ msgid "Unable to delete design setting." msgstr "" #: lib/adminpanelaction.php:300 -#, fuzzy msgid "Basic site configuration" -msgstr "Потврдување на адресата" +msgstr "Основни нагодувања на сајтот" #: lib/adminpanelaction.php:303 #, fuzzy @@ -4308,12 +4272,11 @@ msgstr "" #: lib/attachmentlist.php:265 msgid "Author" -msgstr "" +msgstr "Автор" #: lib/attachmentlist.php:278 -#, fuzzy msgid "Provider" -msgstr "Профил" +msgstr "Обезбедувач" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" @@ -5073,35 +5036,30 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6 или повеќе знаци" -#: lib/noticeform.php:158 -#, fuzzy +#: lib/noticeform.php:160 msgid "Send a notice" -msgstr "Ново известување" +msgstr "Испрати забелешка" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Што има %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" -msgstr "" +msgstr "Прикачи" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" -msgstr "" +msgstr "Прикаќи податотека" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 @@ -5143,9 +5101,8 @@ msgid "Reply to this notice" msgstr "" #: lib/noticelist.php:578 -#, fuzzy msgid "Reply" -msgstr "одговор" +msgstr "Одговор" #: lib/noticelist.php:620 #, fuzzy @@ -5234,9 +5191,8 @@ msgid "Subscribers" msgstr "Претплатници" #: lib/profileaction.php:157 -#, fuzzy msgid "All subscribers" -msgstr "Претплатници" +msgstr "Сите претплатници" #: lib/profileaction.php:178 msgid "User ID" @@ -5248,7 +5204,7 @@ msgstr "Член од" #: lib/profileaction.php:245 msgid "All groups" -msgstr "" +msgstr "Сите групи" #: lib/profileformaction.php:123 #, fuzzy @@ -5306,7 +5262,7 @@ msgstr "Барај" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "Клучен збор" #: lib/searchaction.php:162 #, fuzzy @@ -5335,17 +5291,15 @@ msgstr "" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "Повеќе..." #: lib/silenceform.php:67 -#, fuzzy msgid "Silence" -msgstr "Ново известување" +msgstr "Молк" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Нема таков корисник." +msgstr "Замолчи го овој корисник" #: lib/subgroupnav.php:83 #, fuzzy, php-format @@ -5457,7 +5411,7 @@ msgstr "Поставки на профилот" #: lib/userprofile.php:249 msgid "Edit" -msgstr "" +msgstr "Уреди" #: lib/userprofile.php:272 msgid "Send a direct message to this user" @@ -5465,7 +5419,7 @@ msgstr "" #: lib/userprofile.php:273 msgid "Message" -msgstr "" +msgstr "Порака" #: lib/userprofile.php:311 msgid "Moderate" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index fb773cecc..4dbbc0b85 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:13+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:56+0000\n" "Language-Team: Norwegian (bokmål)‬\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -1734,7 +1734,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Send" @@ -5026,34 +5026,30 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6 eller flere tegn" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 6204d6900..9610ecbbd 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:19+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:03+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -1772,7 +1772,7 @@ msgstr "Persoonlijk bericht" msgid "Optionally add a personal message to the invitation." msgstr "Persoonlijk bericht bij de uitnodiging (optioneel)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Verzenden" @@ -2450,7 +2450,7 @@ msgstr "Waar u bent, bijvoorbeeld \"woonplaats, land\" of \"postcode, land\"" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Mijn huidige locatie weergeven bij het plaatsen van mededelingen" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2513,9 +2513,8 @@ msgstr "" "gebruiker bij te werken." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Het was niet mogelijk de labels op te slaan." +msgstr "Het was niet mogelijk de locatievoorkeuren op te slaan." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -3585,15 +3584,15 @@ msgstr "U hebt dit al ingesteld als uw telefoonnummer." #: actions/smssettings.php:321 msgid "That phone number already belongs to another user." -msgstr "Dit telefoonnummer is al in gebruik bij een andere gebruiker." +msgstr "Dit telefoonnummer is al geregistrerd door een andere gebruiker." #: actions/smssettings.php:347 msgid "" "A confirmation code was sent to the phone number you added. Check your phone " "for the code and instructions on how to use it." msgstr "" -"Er is een bevestigingscode is verzonden naar het telefoonnummer dat u hebt " -"toegevoegd. Controleer uw telefoon voor de code en instructies." +"Er is een bevestigingscode verzonden naar het telefoonnummer dat u hebt " +"toegevoegd. Op uw telefoon vindt u de code en de instructies." #: actions/smssettings.php:374 msgid "That is the wrong confirmation number." @@ -5295,34 +5294,31 @@ msgstr "Directe mededeling verzenden" msgid "To" msgstr "Aan" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Beschikbare tekens" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Mededeling verzenden" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Hallo, %s." -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Toevoegen" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Bestand toevoegen" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." -msgstr "" +#: lib/noticeform.php:213 +#, fuzzy +msgid "Share your location" +msgstr "Uw locatie bekend maken" #: lib/noticelist.php:420 #, php-format diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index aa4705631..32051cfc3 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:16+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:14:59+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -1769,7 +1769,7 @@ msgstr "Personleg melding" msgid "Optionally add a personal message to the invitation." msgstr "Eventuelt legg til ei personleg melding til invitasjonen." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Send" @@ -5150,33 +5150,29 @@ msgstr "Send ei direkte melding" msgid "To" msgstr "Til" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Tilgjenglege teikn" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Send ei melding" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Kva skjer, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 0184ada85..840bb8398 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:22+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:06+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -1744,7 +1744,7 @@ msgstr "Osobista wiadomość" msgid "Optionally add a personal message to the invitation." msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Wyślij" @@ -2420,7 +2420,7 @@ msgstr "Gdzie jesteś, np. \"miasto, województwo (lub region), kraj\"" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Podziel się swoim obecnym położeniem podczas wysyłania wpisów" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2480,9 +2480,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Nie można zaktualizować użytkownika do automatycznej subskrypcji." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Nie można zapisać znaczników." +msgstr "Nie można zapisać preferencji położenia." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -5233,34 +5232,31 @@ msgstr "Wyślij bezpośredni wpis" msgid "To" msgstr "Do" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Dostępne znaki" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Wyślij wpis" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Co słychać, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Załącz" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Załącz plik" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." -msgstr "" +#: lib/noticeform.php:213 +#, fuzzy +msgid "Share your location" +msgstr "Podziel się swoim położeniem " #: lib/noticelist.php:420 #, php-format diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index ee22197e2..abd747118 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:26+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:09+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -1749,7 +1749,7 @@ msgstr "Mensagem pessoal" msgid "Optionally add a personal message to the invitation." msgstr "Pode optar por acrescentar uma mensagem pessoal ao convite" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Enviar" @@ -5237,33 +5237,29 @@ msgstr "Enviar uma nota directa" msgid "To" msgstr "Para" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Caracteres disponíveis" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar uma nota" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Novidades, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Anexar" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Anexar um ficheiro" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 9d9474658..ce3a6b438 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -1,7 +1,7 @@ # Translation of StatusNet to Brazilian Portuguese # +# Author@translatewiki.net: Aracnus # Author@translatewiki.net: Ewout -# Author@translatewiki.net: McDutchie # Author@translatewiki.net: Vuln # -- # This file is distributed under the same license as the StatusNet package. @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:31+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:12+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -24,7 +24,7 @@ msgstr "" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 #: actions/showfavorites.php:137 actions/tag.php:51 msgid "No such page" -msgstr "Essa página não existe." +msgstr "Esta página não existe." #: actions/all.php:74 actions/allrss.php:68 #: actions/apiaccountupdatedeliverydevice.php:113 @@ -50,7 +50,7 @@ msgstr "Essa página não existe." #: lib/galleryaction.php:59 lib/mailbox.php:82 lib/profileaction.php:77 #: lib/subs.php:34 lib/subs.php:116 msgid "No such user." -msgstr "Usuário não encontrado." +msgstr "Este usuário não existe." #: actions/all.php:84 #, php-format @@ -65,25 +65,27 @@ msgid "%s and friends" msgstr "%s e amigos" #: actions/all.php:99 -#, fuzzy, php-format +#, php-format msgid "Feed for friends of %s (RSS 1.0)" -msgstr "Feed para os amigos de %s" +msgstr "Fonte de mensagens dos amigos de %s (RSS 1.0)" #: actions/all.php:107 -#, fuzzy, php-format +#, php-format msgid "Feed for friends of %s (RSS 2.0)" -msgstr "Feed para os amigos de %s" +msgstr "Fonte de mensagens dos amigos de %s (RSS 2.0)" #: actions/all.php:115 -#, fuzzy, php-format +#, php-format msgid "Feed for friends of %s (Atom)" -msgstr "Feed para os amigos de %s" +msgstr "Fonte de mensagens dos amigos de %s (Atom)" #: actions/all.php:127 #, php-format msgid "" "This is the timeline for %s and friends but no one has posted anything yet." msgstr "" +"Esse é o fluxo de mensagens de %s e seus amigos, mas ninguém publicou nada " +"ainda." #: actions/all.php:132 #, php-format @@ -91,6 +93,8 @@ msgid "" "Try subscribing to more people, [join a group](%%action.groups%%) or post " "something yourself." msgstr "" +"Tente assinar mais pessoas, [unir-ser a um grupo](%%action.groups%%) ou " +"publicar algo." #: actions/all.php:134 #, php-format @@ -98,6 +102,9 @@ msgid "" "You can try to [nudge %s](../%s) from his profile or [post something to his " "or her attention](%%%%action.newnotice%%%%?status_textarea=%s)." msgstr "" +"Você pode tentar [chamar a atenção de %s](../%s) em seu perfil ou [publicar " +"alguma coisa que desperte seu interesse](%%%%action.newnotice%%%%?" +"status_textarea=%s)." #: actions/all.php:137 actions/replies.php:209 actions/showstream.php:202 #, php-format @@ -105,6 +112,8 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and then nudge %s or " "post a notice to his or her attention." msgstr "" +"Por que não [registrar uma conta](%%%%action.register%%%%) e então chamar a " +"atenção de %s ou publicar uma mensagem para sua atenção." #: actions/all.php:165 msgid "You and friends" @@ -121,7 +130,6 @@ msgstr "Atualizações de %1$s e amigos no %2$s!" #: actions/apiaccountupdateprofile.php:97 #: actions/apiaccountupdateprofilebackgroundimage.php:94 #: actions/apiaccountupdateprofilecolors.php:118 -#, fuzzy msgid "API method not found." msgstr "O método da API não foi encontrado!" @@ -144,9 +152,10 @@ msgid "" "You must specify a parameter named 'device' with a value of one of: sms, im, " "none" msgstr "" +"Você pode especificar um parâmetro denominado 'device', com um dos valores: " +"sms, im, none" #: actions/apiaccountupdatedeliverydevice.php:132 -#, fuzzy msgid "Could not update user." msgstr "Não foi possível atualizar o usuário." @@ -160,7 +169,6 @@ msgid "User has no profile." msgstr "O usuário não tem perfil." #: actions/apiaccountupdateprofile.php:147 -#, fuzzy msgid "Could not save profile." msgstr "Não foi possível salvar o perfil." @@ -174,25 +182,24 @@ msgid "" "The server was unable to handle that much POST data (%s bytes) due to its " "current configuration." msgstr "" +"O servidor não conseguiu manipular a quantidade de dados do POST (%s bytes) " +"devido à sua configuração atual." #: actions/apiaccountupdateprofilebackgroundimage.php:136 #: actions/apiaccountupdateprofilebackgroundimage.php:146 #: actions/apiaccountupdateprofilecolors.php:164 #: actions/apiaccountupdateprofilecolors.php:174 -#, fuzzy msgid "Unable to save your design settings." -msgstr "Não foi possível salvar suas configurações do Twitter!" +msgstr "Não foi possível salvar suas configurações de aparência." #: actions/apiaccountupdateprofilebackgroundimage.php:187 #: actions/apiaccountupdateprofilecolors.php:142 -#, fuzzy msgid "Could not update your design." -msgstr "Não foi possível atualizar o usuário." +msgstr "Não foi possível atualizar a sua aparência." #: actions/apiblockcreate.php:105 -#, fuzzy msgid "You cannot block yourself!" -msgstr "Não foi possível atualizar o usuário." +msgstr "Você não pode bloquear a si mesmo!" #: actions/apiblockcreate.php:126 msgid "Block user failed." @@ -215,7 +222,7 @@ msgstr "Todas as mensagens diretas enviadas por %s" #: actions/apidirectmessage.php:101 #, php-format msgid "Direct messages to %s" -msgstr "Mensagem direta para %s" +msgstr "Mensagens diretas para %s" #: actions/apidirectmessage.php:105 #, php-format @@ -249,7 +256,7 @@ msgstr "Nenhuma mensagem de texto!" #: actions/apidirectmessagenew.php:135 actions/newmessage.php:150 #, php-format msgid "That's too long. Max message size is %d chars." -msgstr "Isso é muito extenso. O tamanho máximo das mensagens é 140 caracteres." +msgstr "Isso é muito extenso. O tamanho máximo das mensagens é %d caracteres." #: actions/apidirectmessagenew.php:146 msgid "Recipient user not found." @@ -258,7 +265,7 @@ msgstr "O usuário destinatário não foi encontrado." #: actions/apidirectmessagenew.php:150 msgid "Can't send direct messages to users who aren't your friend." msgstr "" -"Não é possível enviar mensagens diretas para usuários que não são seus " +"Não é possível enviar mensagens diretas para usuários que não sejam seus " "amigos." #: actions/apifavoritecreate.php:108 actions/apifavoritedestroy.php:109 @@ -276,7 +283,7 @@ msgstr "Não foi possível criar a favorita." #: actions/apifavoritedestroy.php:122 msgid "That status is not a favorite!" -msgstr "Essa mensagem não é uma favorita!" +msgstr "Essa mensagem não é favorita!" #: actions/apifavoritedestroy.php:134 actions/disfavor.php:87 msgid "Could not delete favorite." @@ -292,98 +299,96 @@ msgid "Could not follow user: %s is already on your list." msgstr "Não é possível seguir o usuário: %s já está na sua lista." #: actions/apifriendshipsdestroy.php:109 -#, fuzzy msgid "Could not unfollow user: User not found." -msgstr "Não é possível seguir o usuário: Usuário não encontrado." +msgstr "Não é possível deixar de seguir o usuário: Usuário não encontrado." #: actions/apifriendshipsdestroy.php:120 msgid "You cannot unfollow yourself!" -msgstr "" +msgstr "Você não pode deixar de seguir você mesmo!" #: actions/apifriendshipsexists.php:94 msgid "Two user ids or screen_names must be supplied." msgstr "Duas IDs de usuário ou screen_names devem ser informados." #: actions/apifriendshipsshow.php:135 -#, fuzzy msgid "Could not determine source user." -msgstr "Não foi possível recuperar o fluxo público." +msgstr "Não foi possível determinar o usuário de origem." #: actions/apifriendshipsshow.php:143 msgid "Could not find target user." -msgstr "Não foi possível encontrar usuário alvo." +msgstr "Não foi possível encontrar usuário de destino." #: actions/apigroupcreate.php:164 actions/editgroup.php:182 #: actions/newgroup.php:126 actions/profilesettings.php:215 #: actions/register.php:205 msgid "Nickname must have only lowercase letters and numbers and no spaces." msgstr "" -"O apelido deve conter apenas letras minúsculas e/ou números e não pode ter " -"acentuação e espaços." +"A identificação deve conter apenas letras minúsculas e números e não pode " +"ter e espaços." #: actions/apigroupcreate.php:173 actions/editgroup.php:186 #: actions/newgroup.php:130 actions/profilesettings.php:238 #: actions/register.php:208 msgid "Nickname already in use. Try another one." -msgstr "Este apelido já está em uso. Tente outro." +msgstr "Esta identificação já está em uso. Tente outro." #: actions/apigroupcreate.php:180 actions/editgroup.php:189 #: actions/newgroup.php:133 actions/profilesettings.php:218 #: actions/register.php:210 msgid "Not a valid nickname." -msgstr "Não é um apelido válido." +msgstr "Não é uma identificação válida." #: actions/apigroupcreate.php:196 actions/editgroup.php:195 #: actions/newgroup.php:139 actions/profilesettings.php:222 #: actions/register.php:217 msgid "Homepage is not a valid URL." -msgstr "A URL do site informada não é válida." +msgstr "A URL informada não é válida." #: actions/apigroupcreate.php:205 actions/editgroup.php:198 #: actions/newgroup.php:142 actions/profilesettings.php:225 #: actions/register.php:220 msgid "Full name is too long (max 255 chars)." -msgstr "O nome completo é muito extenso (máx. 255 caracteres)" +msgstr "Nome completo muito extenso (máx. 255 caracteres)" #: actions/apigroupcreate.php:213 #, php-format msgid "Description is too long (max %d chars)." -msgstr "Descrição muito extensa (máximo 140 caracteres)." +msgstr "Descrição muito extensa (máximo %d caracteres)." #: actions/apigroupcreate.php:224 actions/editgroup.php:204 #: actions/newgroup.php:148 actions/profilesettings.php:232 #: actions/register.php:227 msgid "Location is too long (max 255 chars)." -msgstr "A localização é muito extensa (máx. 255 caracteres)." +msgstr "Localização muito extensa (máx. 255 caracteres)." #: actions/apigroupcreate.php:243 actions/editgroup.php:215 #: actions/newgroup.php:159 #, php-format msgid "Too many aliases! Maximum %d." -msgstr "" +msgstr "Muitos apelidos! O máximo são %d." #: actions/apigroupcreate.php:264 actions/editgroup.php:224 #: actions/newgroup.php:168 #, php-format msgid "Invalid alias: \"%s\"" -msgstr "Tag inválida: \"%s\"" +msgstr "Apelido inválido: \"%s\"" #: actions/apigroupcreate.php:273 actions/editgroup.php:228 #: actions/newgroup.php:172 -#, fuzzy, php-format +#, php-format msgid "Alias \"%s\" already in use. Try another one." -msgstr "Este apelido já está em uso. Tente outro." +msgstr "O apelido \"%s\" já está em uso. Tente outro." #: actions/apigroupcreate.php:286 actions/editgroup.php:234 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "O apelido não pode ser igual à identificação." #: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 #: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 #: actions/apigroupshow.php:90 actions/apitimelinegroup.php:91 msgid "Group not found!" -msgstr "Grupo não encontrado." +msgstr "O grupo não foi encontrado!" #: actions/apigroupjoin.php:110 msgid "You are already a member of that group." @@ -391,12 +396,12 @@ msgstr "Você já é membro desse grupo." #: actions/apigroupjoin.php:119 actions/joingroup.php:95 lib/command.php:221 msgid "You have been blocked from that group by the admin." -msgstr "Você foi bloqueado desse grupo pelo administrador." +msgstr "O administrador desse grupo bloqueou sua inscrição." #: actions/apigroupjoin.php:138 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s." -msgstr "Não é possível acompanhar o usuário: Usuário não encontrado." +msgstr "Não foi possível associar o usuário %s ao grupo %s." #: actions/apigroupleave.php:114 msgid "You are not a member of this group." @@ -405,17 +410,17 @@ msgstr "Você não é membro deste grupo." #: actions/apigroupleave.php:124 #, php-format msgid "Could not remove user %s to group %s." -msgstr "Não foi possível remover o usuário %s do grupo %." +msgstr "Não foi possível remover o usuário %s do grupo %s." #: actions/apigrouplist.php:95 -#, fuzzy, php-format +#, php-format msgid "%s's groups" msgstr "Grupos de %s" #: actions/apigrouplist.php:103 -#, fuzzy, php-format +#, php-format msgid "Groups %s is a member of on %s." -msgstr "O grupo %s é membro de" +msgstr "Os grupos dos quais %s é membro no %s." #: actions/apigrouplistall.php:90 actions/usergroups.php:62 #, php-format @@ -423,17 +428,17 @@ msgid "%s groups" msgstr "Grupos de %s" #: actions/apigrouplistall.php:94 -#, fuzzy, php-format +#, php-format msgid "groups on %s" -msgstr "Outras opções" +msgstr "grupos no %s" #: actions/apistatusesdestroy.php:107 msgid "This method requires a POST or DELETE." -msgstr "Este método requer POSTAGEM ou EXCLUSÃO." +msgstr "Esse método requer um POST ou DELETE." #: actions/apistatusesdestroy.php:130 msgid "You may not delete another user's status." -msgstr "Você não pode apagar o status de outro usuário." +msgstr "Você não pode excluir uma mensagem de outro usuário." #: actions/apistatusesretweet.php:75 actions/apistatusesretweets.php:72 #: actions/deletenotice.php:52 actions/shownotice.php:92 @@ -441,28 +446,26 @@ msgid "No such notice." msgstr "Essa mensagem não existe." #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "Não é possível ligar a notificação." +msgstr "Você não pode repetria sua própria mensagem." #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "Excluir esta mensagem" +msgstr "Você já repetiu essa mensagem." #: actions/apistatusesshow.php:138 msgid "Status deleted." -msgstr "" +msgstr "A mensagem foi excluída." #: actions/apistatusesshow.php:144 msgid "No status with that ID found." -msgstr "Não foi encontrado nenhum status com esse ID." +msgstr "Não foi encontrada nenhuma mensagem com esse ID." #: actions/apistatusesupdate.php:157 actions/newnotice.php:155 #: scripts/maildaemon.php:71 #, php-format msgid "That's too long. Max notice size is %d chars." -msgstr "Está muito extenso. O tamanho máximo é de 140 caracteres." +msgstr "Está muito extenso. O tamanho máximo é de %s caracteres." #: actions/apistatusesupdate.php:198 msgid "Not found" @@ -471,12 +474,11 @@ msgstr "Não encontrado" #: actions/apistatusesupdate.php:221 actions/newnotice.php:178 #, php-format msgid "Max notice size is %d chars, including attachment URL." -msgstr "" +msgstr "O tamanho máximo da mensagem é de %s caracteres" #: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 -#, fuzzy msgid "Unsupported format." -msgstr "Formato de imagem não suportado." +msgstr "Formato não suportado." #: actions/apitimelinefavorites.php:108 #, php-format @@ -486,7 +488,7 @@ msgstr "%s / Favoritas de %s" #: actions/apitimelinefavorites.php:120 #, php-format msgid "%s updates favorited by %s / %s." -msgstr "%s atualizações de favoritas por %s / %s." +msgstr "%s marcadas como favoritas por %s / %s." #: actions/apitimelinegroup.php:109 actions/apitimelineuser.php:118 #: actions/grouprss.php:131 actions/userrss.php:90 @@ -498,17 +500,17 @@ msgstr "Mensagens de %s" #: actions/userrss.php:92 #, php-format msgid "Updates from %1$s on %2$s!" -msgstr "Atualizações de %1$s no %2$s!" +msgstr "Mensagens de %1$s no %2$s!" #: actions/apitimelinementions.php:117 -#, fuzzy, php-format +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s / Atualizações respondendo à %2$s" +msgstr "%1$s / Mensagens mencionando %2$s" #: actions/apitimelinementions.php:127 #, php-format msgid "%1$s updates that reply to updates from %2$s / %3$s." -msgstr "%1$s atualizações que respondem a mensagens de %2$s / %3$s." +msgstr "%1$s mensagens em resposta a mensagens de %2$s / %3$s." #: actions/apitimelinepublic.php:107 actions/publicrss.php:103 #, php-format @@ -518,46 +520,45 @@ msgstr "Mensagens públicas de %s" #: actions/apitimelinepublic.php:111 actions/publicrss.php:105 #, php-format msgid "%s updates from everyone!" -msgstr "%s atualizações de todo mundo!" +msgstr "%s mensagens de todo mundo!" #: actions/apitimelineretweetedbyme.php:112 #, php-format msgid "Repeated by %s" -msgstr "" +msgstr "Repetida por %s" #: actions/apitimelineretweetedtome.php:111 -#, fuzzy, php-format +#, php-format msgid "Repeated to %s" -msgstr "Respostas para %s" +msgstr "Repetida para %s" #: actions/apitimelineretweetsofme.php:112 -#, fuzzy, php-format +#, php-format msgid "Repeats of %s" -msgstr "Respostas para %s" +msgstr "Repetições de %s" #: actions/apitimelinetag.php:102 actions/tag.php:66 #, php-format msgid "Notices tagged with %s" -msgstr "Mensagens etiquetadas com %s" +msgstr "Mensagens etiquetadas como %s" #: actions/apitimelinetag.php:108 actions/tagrss.php:64 -#, fuzzy, php-format +#, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "Atualizações de %1$s no %2$s!" +msgstr "Mensagens etiquetadas como %1$s no %2$s!" #: actions/apiusershow.php:96 msgid "Not found." msgstr "Não encontrado." #: actions/attachment.php:73 -#, fuzzy msgid "No such attachment." -msgstr "Esse documento não existe." +msgstr "Este anexo não existe." #: actions/avatarbynickname.php:59 actions/grouprss.php:91 #: actions/leavegroup.php:76 msgid "No nickname." -msgstr "Nenhum apelido." +msgstr "Nenhuma identificação." #: actions/avatarbynickname.php:64 msgid "No size." @@ -575,7 +576,8 @@ msgstr "Avatar" #: actions/avatarsettings.php:78 #, php-format msgid "You can upload your personal avatar. The maximum file size is %s." -msgstr "Você pode enviar seu avatar pessoal. O tamanho máximo do arquivo é %s" +msgstr "" +"Você pode enviar seu avatar pessoal. O tamanho máximo do arquivo é de %s." #: actions/avatarsettings.php:106 actions/avatarsettings.php:185 #: actions/grouplogo.php:178 actions/remotesubscribe.php:191 @@ -641,7 +643,7 @@ msgstr "Selecione uma área quadrada da imagem para ser seu avatar" #: actions/avatarsettings.php:343 actions/grouplogo.php:377 msgid "Lost our file data." -msgstr "Nossos dados do arquivo foi perdido." +msgstr "Os dados do nosso arquivo foram perdidos." #: actions/avatarsettings.php:366 msgid "Avatar updated." @@ -652,9 +654,8 @@ msgid "Failed updating avatar." msgstr "Não foi possível atualizar o avatar." #: actions/avatarsettings.php:393 -#, fuzzy msgid "Avatar deleted." -msgstr "O avatar foi atualizado." +msgstr "O avatar foi excluído." #: actions/block.php:69 msgid "You already blocked that user." @@ -670,6 +671,10 @@ msgid "" "unsubscribed from you, unable to subscribe to you in the future, and you " "will not be notified of any @-replies from them." msgstr "" +"Tem certeza que deseja bloquear este usuário? Se fizer isso, ele deixará de " +"assiná-lo e será incapaz de fazê-lo no futuro. Além disso, você não receberá " +"nenhuma notificação acerca de qualquer citação (@usuário) que ele fizer de " +"você." #: actions/block.php:143 actions/deletenotice.php:145 #: actions/deleteuser.php:147 actions/groupblock.php:178 @@ -677,9 +682,8 @@ msgid "No" msgstr "Não" #: actions/block.php:143 actions/deleteuser.php:147 -#, fuzzy msgid "Do not block this user" -msgstr "Desbloquear este usuário" +msgstr "Não bloquear este usuário" #: actions/block.php:144 actions/deletenotice.php:146 #: actions/deleteuser.php:148 actions/groupblock.php:179 @@ -689,7 +693,7 @@ msgstr "Sim" #: actions/block.php:144 actions/groupmembers.php:346 lib/blockform.php:80 msgid "Block this user" -msgstr "Bloquear usuário" +msgstr "Bloquear este usuário" #: actions/block.php:167 msgid "Failed to save block information." @@ -710,23 +714,22 @@ msgid "No such group" msgstr "Esse grupo não existe" #: actions/blockedfromgroup.php:90 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles" -msgstr "O usuário não tem perfil." +msgstr "Perfis bloqueados no %s" #: actions/blockedfromgroup.php:93 -#, fuzzy, php-format +#, php-format msgid "%s blocked profiles, page %d" -msgstr "%s e amigos, página %d" +msgstr "Perfis bloqueados no %s, página %d" #: actions/blockedfromgroup.php:108 msgid "A list of the users blocked from joining this group." -msgstr "" +msgstr "Uma lista dos usuários proibidos de se associarem a este grupo." #: actions/blockedfromgroup.php:281 -#, fuzzy msgid "Unblock user from group" -msgstr "Não foi possível desbloquear o usuário." +msgstr "Desbloquear o usuário do grupo" #: actions/blockedfromgroup.php:313 lib/unblockform.php:69 msgid "Unblock" @@ -738,7 +741,7 @@ msgstr "Desbloquear este usuário" #: actions/bookmarklet.php:50 msgid "Post to " -msgstr "" +msgstr "Enviar para " #: actions/confirmaddress.php:75 msgid "No confirmation code." @@ -750,12 +753,12 @@ msgstr "O código de confirmação não foi encontrado." #: actions/confirmaddress.php:85 msgid "That confirmation code is not for you!" -msgstr "Esse código de confirmação não é seu!" +msgstr "Esse não é o seu código de confirmação!" #: actions/confirmaddress.php:90 #, php-format msgid "Unrecognized address type %s" -msgstr "Tipo de endereço %s desconhecido" +msgstr "Tipo de endereço desconhecido %s" #: actions/confirmaddress.php:94 msgid "That address has already been confirmed." @@ -784,9 +787,8 @@ msgid "The address \"%s\" has been confirmed for your account." msgstr "O endereço \"%s\" foi confirmado para sua conta." #: actions/conversation.php:99 -#, fuzzy msgid "Conversation" -msgstr "Código de confirmação" +msgstr "Conversa" #: actions/conversation.php:154 lib/mailbox.php:116 lib/noticelist.php:87 #: lib/profileaction.php:216 lib/searchgroupnav.php:82 @@ -801,7 +803,7 @@ msgstr "Mensagens" #: lib/adminpanelaction.php:72 lib/profileformaction.php:63 #: lib/settingsaction.php:72 msgid "Not logged in." -msgstr "Você não está logado." +msgstr "Você não está autenticado." #: actions/deletenotice.php:71 msgid "Can't delete this notice." @@ -812,8 +814,8 @@ msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" -"Você está prestes a apagar permanentemente uma mensagem. Isso não poderá ser " -"desfeito." +"Você está prestes a excluir permanentemente uma mensagem. Isso não poderá " +"ser desfeito." #: actions/deletenotice.php:109 actions/deletenotice.php:141 msgid "Delete notice" @@ -821,32 +823,28 @@ msgstr "Excluir a mensagem" #: actions/deletenotice.php:144 msgid "Are you sure you want to delete this notice?" -msgstr "Você tem certeza que deseja excluir esta mensagem?" +msgstr "Tem certeza que deseja excluir esta mensagem?" #: actions/deletenotice.php:145 -#, fuzzy msgid "Do not delete this notice" -msgstr "Não é possível excluir esta mensagem." +msgstr "Não excluir esta mensagem." #: actions/deletenotice.php:146 lib/noticelist.php:603 msgid "Delete this notice" msgstr "Excluir esta mensagem" #: actions/deletenotice.php:157 -#, fuzzy msgid "There was a problem with your session token. Try again, please." msgstr "" -"Ocorreu um problema com o seu token de sessão. Tente novamente, por favor." +"Ocorreu um problema com o seu token de sessão. Por favor, tente novamente." #: actions/deleteuser.php:67 -#, fuzzy msgid "You cannot delete users." -msgstr "Não foi possível atualizar o usuário." +msgstr "Você não pode excluir usuários." #: actions/deleteuser.php:74 -#, fuzzy msgid "You can only delete local users." -msgstr "Você não pode apagar o status de outro usuário." +msgstr "Você só pode excluir usuários locais." #: actions/deleteuser.php:110 actions/deleteuser.php:133 msgid "Delete user" @@ -857,66 +855,59 @@ msgid "" "Are you sure you want to delete this user? This will clear all data about " "the user from the database, without a backup." msgstr "" -"Você tem certeza que quer remover este usuário? Isso irá limpar todos os " -"dados sobre o usuário do banco de dados, sem backup." +"Tem certeza que deseja excluir este usuário? Isso irá eliminar todos os " +"dados deste usuário do banco de dados, sem cópia de segurança." #: actions/deleteuser.php:148 lib/deleteuserform.php:77 -#, fuzzy msgid "Delete this user" -msgstr "Excluir esta mensagem" +msgstr "Excluir este usuário" #: actions/designadminpanel.php:62 lib/accountsettingsaction.php:124 #: lib/adminpanelaction.php:302 lib/groupnav.php:119 msgid "Design" -msgstr "" +msgstr "Aparência" #: actions/designadminpanel.php:73 msgid "Design settings for this StatusNet site." -msgstr "" +msgstr "Configurações da aparência deste site StatusNet." #: actions/designadminpanel.php:275 -#, fuzzy msgid "Invalid logo URL." -msgstr "Tamanho inválido." +msgstr "A URL da logo é inválida." #: actions/designadminpanel.php:279 -#, fuzzy, php-format +#, php-format msgid "Theme not available: %s" -msgstr "Esta página não está disponível em um " +msgstr "Tema não disponível: %s" #: actions/designadminpanel.php:375 -#, fuzzy msgid "Change logo" -msgstr "Altere a sua senha" +msgstr "Alterar a logo" #: actions/designadminpanel.php:380 -#, fuzzy msgid "Site logo" -msgstr "Convidar" +msgstr "Logo do site" #: actions/designadminpanel.php:387 -#, fuzzy msgid "Change theme" -msgstr "Alterar" +msgstr "Alterar o tema" #: actions/designadminpanel.php:404 -#, fuzzy msgid "Site theme" -msgstr "Nova mensagem" +msgstr "Tema do site" #: actions/designadminpanel.php:405 -#, fuzzy msgid "Theme for the site." -msgstr "Sair deste site" +msgstr "Tema para o site." #: actions/designadminpanel.php:417 lib/designsettings.php:101 msgid "Change background image" -msgstr "Alterar imagem de plano de fundo." +msgstr "Alterar imagem do fundo" #: actions/designadminpanel.php:422 actions/designadminpanel.php:497 #: lib/designsettings.php:178 msgid "Background" -msgstr "" +msgstr "Fundo" #: actions/designadminpanel.php:427 #, php-format @@ -924,59 +915,56 @@ msgid "" "You can upload a background image for the site. The maximum file size is %1" "$s." msgstr "" -"Você pode enviar uma imagem de plano de fundo para o site. O tamanho máximo " -"do arquivo é %l$s" +"Você pode enviar uma imagem de fundo para o site. O tamanho máximo do " +"arquivo é de %1 $s." #: actions/designadminpanel.php:457 lib/designsettings.php:139 msgid "On" -msgstr "Ligado" +msgstr "Ativado" #: actions/designadminpanel.php:473 lib/designsettings.php:155 msgid "Off" -msgstr "" +msgstr "Desativado" #: actions/designadminpanel.php:474 lib/designsettings.php:156 msgid "Turn background image on or off." -msgstr "" +msgstr "Ativar/desativar a imagem de fundo." #: actions/designadminpanel.php:479 lib/designsettings.php:161 msgid "Tile background image" -msgstr "" +msgstr "Ladrilhar a imagem de fundo" #: actions/designadminpanel.php:488 lib/designsettings.php:170 -#, fuzzy msgid "Change colours" -msgstr "Altere a sua senha" +msgstr "Alterar a cor" #: actions/designadminpanel.php:510 lib/designsettings.php:191 msgid "Content" msgstr "Conteúdo" #: actions/designadminpanel.php:523 lib/designsettings.php:204 -#, fuzzy msgid "Sidebar" -msgstr "Procurar" +msgstr "Barra lateral" #: actions/designadminpanel.php:536 lib/designsettings.php:217 msgid "Text" msgstr "Texto" #: actions/designadminpanel.php:549 lib/designsettings.php:230 -#, fuzzy msgid "Links" -msgstr "Lista" +msgstr "Links" #: actions/designadminpanel.php:577 lib/designsettings.php:247 msgid "Use defaults" -msgstr "Usar o padrão." +msgstr "Usar o padrão|" #: actions/designadminpanel.php:578 lib/designsettings.php:248 msgid "Restore default designs" -msgstr "" +msgstr "Restaura a aparência padrão" #: actions/designadminpanel.php:584 lib/designsettings.php:254 msgid "Reset back to default" -msgstr "" +msgstr "Restaura de volta ao padrão" #: actions/designadminpanel.php:586 actions/emailsettings.php:195 #: actions/imsettings.php:163 actions/othersettings.php:126 @@ -990,15 +978,15 @@ msgstr "Salvar" #: actions/designadminpanel.php:587 lib/designsettings.php:257 msgid "Save design" -msgstr "" +msgstr "Salvar a aparência" #: actions/disfavor.php:81 msgid "This notice is not a favorite!" -msgstr "Essa mensagem não é uma favorita!" +msgstr "Esta mensagem não é uma favorita!" #: actions/disfavor.php:94 msgid "Add to favorites" -msgstr "Adicionar aos favoritos" +msgstr "Adicionar às favoritas" #: actions/doc.php:69 msgid "No such document." @@ -1011,7 +999,7 @@ msgstr "Editar o grupo %s" #: actions/editgroup.php:68 actions/grouplogo.php:70 actions/newgroup.php:65 msgid "You must be logged in to create a group." -msgstr "Você deve estar logado para criar um grupo." +msgstr "Você deve estar autenticado para criar um grupo." #: actions/editgroup.php:103 actions/editgroup.php:168 #: actions/groupdesignsettings.php:104 actions/grouplogo.php:106 @@ -1025,16 +1013,15 @@ msgstr "Use esse formulário para editar o grupo." #: actions/editgroup.php:201 actions/newgroup.php:145 #, php-format msgid "description is too long (max %d chars)." -msgstr "descrição muito extensa (máximo 140 caracteres)." +msgstr "descrição muito extensa (máximo %d caracteres)." #: actions/editgroup.php:253 msgid "Could not update group." msgstr "Não foi possível atualizar o grupo." #: actions/editgroup.php:259 classes/User_group.php:390 -#, fuzzy msgid "Could not create aliases." -msgstr "Não foi possível criar a favorita." +msgstr "Não foi possível criar os apelidos." #: actions/editgroup.php:269 msgid "Options saved." @@ -1047,7 +1034,7 @@ msgstr "Configurações do e-mail" #: actions/emailsettings.php:71 #, php-format msgid "Manage how you get email from %%site.name%%." -msgstr "Configure o recebimento de e-mails do %%site.name%%." +msgstr "Configure o recebimento de e-mails de %%site.name%%." #: actions/emailsettings.php:100 actions/imsettings.php:100 #: actions/smssettings.php:104 @@ -1083,7 +1070,7 @@ msgstr "Endereço de e-mail" #: actions/emailsettings.php:123 msgid "Email address, like \"UserName@example.org\"" -msgstr "Endereço de e-mail, ex: \"usuario@example.org\"" +msgstr "Endereço de e-mail, ex: \"usuario@exemplo.org\"" #: actions/emailsettings.php:126 actions/imsettings.php:133 #: actions/smssettings.php:145 @@ -1123,16 +1110,17 @@ msgstr "" #: actions/emailsettings.php:169 msgid "Send me email when someone sends me a private message." -msgstr "Envie-me um e-mail quando alguém enviar-me uma mensagem particular." +msgstr "Envie-me um e-mail quando alguém me mandar uma mensagem particular." #: actions/emailsettings.php:174 -#, fuzzy msgid "Send me email when someone sends me an \"@-reply\"." -msgstr "Envie-me um e-mail quando alguém enviar-me uma mensagem particular." +msgstr "" +"Envie-me um e-mail quando alguém mandar uma mensagem citando meu nome " +"(\"@nome\")." #: actions/emailsettings.php:179 msgid "Allow friends to nudge me and send me an email." -msgstr "Permitir que meus amigos chamem minha atenção e enviem-me um e-mail." +msgstr "Permita que meus amigos chamem minha atenção e enviem-me e-mails." #: actions/emailsettings.php:185 msgid "I want to post notices by email." @@ -1188,12 +1176,12 @@ msgstr "Nenhuma confirmação pendente para cancelar." #: actions/emailsettings.php:383 actions/imsettings.php:355 msgid "That is the wrong IM address." -msgstr "Isso é um endereço de IM errado." +msgstr "Isso é um endereço de MI errado." #: actions/emailsettings.php:395 actions/imsettings.php:367 #: actions/smssettings.php:386 msgid "Confirmation cancelled." -msgstr "Confirmação cancelada." +msgstr "A confirmação foi cancelada." #: actions/emailsettings.php:413 msgid "That is not your email address." @@ -1228,7 +1216,7 @@ msgstr "Essa mensagem já é uma favorita!" #: actions/favor.php:92 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "Excluir a favorita" +msgstr "Desmarcar a favorita" #: actions/favorited.php:65 lib/popularnoticesection.php:88 #: lib/publicgroupnav.php:93 @@ -1247,12 +1235,16 @@ msgstr "As etiquetas mais populares no site agora." #: actions/favorited.php:150 msgid "Favorite notices appear on this page but no one has favorited one yet." msgstr "" +"As mensagens favoritas aparecem nesta página, mas ninguém ainda marcou " +"nenhuma como favorita." #: actions/favorited.php:153 msgid "" "Be the first to add a notice to your favorites by clicking the fave button " "next to any notice you like." msgstr "" +"Seja o primeiro a marcar uma mensagem como favorita, clicando no botão " +"próximo a qualquer uma que você goste." #: actions/favorited.php:156 #, php-format @@ -1260,6 +1252,8 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" +"Por que você não [registra uma conta](%%action.register%%) pra ser o " +"primeiro a adicionar uma mensagem aos favoritos?" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 #: lib/personalgroupnav.php:115 @@ -1268,51 +1262,46 @@ msgid "%s's favorite notices" msgstr "Mensagens favoritas de %s" #: actions/favoritesrss.php:115 -#, fuzzy, php-format +#, php-format msgid "Updates favored by %1$s on %2$s!" -msgstr "Atualizações de %1$s no %2$s!" +msgstr "Mensagens favoritas de %1$s no %2$s!" #: actions/featured.php:69 lib/featureduserssection.php:87 #: lib/publicgroupnav.php:89 msgid "Featured users" -msgstr "Usuários de destaque" +msgstr "Usuários em destaque" #: actions/featured.php:71 #, php-format msgid "Featured users, page %d" -msgstr "Usuários de destaque, pág. %d" +msgstr "Usuários em destaque, pág. %d" #: actions/featured.php:99 #, php-format msgid "A selection of some great users on %s" -msgstr "" +msgstr "Uma seleção de alguns grandes usuários no%s" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Nova mensagem" +msgstr "Sem ID da mensagem." #: actions/file.php:38 -#, fuzzy msgid "No notice." -msgstr "Nova mensagem" +msgstr "Nenhuma mensagem." #: actions/file.php:42 -#, fuzzy msgid "No attachments." -msgstr "Esse documento não existe." +msgstr "Nenhum anexo." #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Esse documento não existe." +msgstr "Nenhum anexo enviado." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" msgstr "Não esperava por esta resposta!" #: actions/finishremotesubscribe.php:80 -#, fuzzy msgid "User being listened to does not exist." msgstr "O usuário que está está sendo acompanhado não existe." @@ -1326,40 +1315,34 @@ msgstr "Esse usuário bloqueou o seu pedido de assinatura." #: actions/finishremotesubscribe.php:110 msgid "You are not authorized." -msgstr "Não autorizado." +msgstr "Você não está autorizado." #: actions/finishremotesubscribe.php:113 -#, fuzzy msgid "Could not convert request token to access token." -msgstr "" -"Não foi possível converter os tokens de requisição para tokens de acesso." +msgstr "Não foi possível converter o token de requisição para token de acesso." #: actions/finishremotesubscribe.php:118 -#, fuzzy msgid "Remote service uses unknown version of OMB protocol." -msgstr "Versão desconhecida do protocolo OMB." +msgstr "O serviço remoto usa uma versão desconhecida do protocolo OMB." #: actions/finishremotesubscribe.php:138 lib/oauthstore.php:306 msgid "Error updating remote profile" -msgstr "Erro na atualização do perfil remoto" +msgstr "Ocorreu um erro na atualização do perfil remoto" #: actions/foafgroup.php:44 actions/foafgroup.php:62 actions/groupblock.php:86 #: actions/grouprss.php:98 actions/groupunblock.php:86 #: actions/leavegroup.php:83 actions/makeadmin.php:86 lib/command.php:212 #: lib/command.php:263 -#, fuzzy msgid "No such group." -msgstr "Essa etiqueta não existe." +msgstr "Esse grupo não existe." #: actions/getfile.php:75 -#, fuzzy msgid "No such file." -msgstr "Essa mensagem não existe." +msgstr "Esse arquivo não existe." #: actions/getfile.php:79 -#, fuzzy msgid "Cannot read file." -msgstr "Nosso arquivo foi perdido." +msgstr "Não foi possível ler o arquivo." #: actions/groupblock.php:71 actions/groupunblock.php:71 #: actions/makeadmin.php:71 actions/subedit.php:46 @@ -1375,28 +1358,24 @@ msgstr "Não foi encontrado nenhum perfil com esse ID." #: actions/groupblock.php:81 actions/groupunblock.php:81 #: actions/makeadmin.php:81 -#, fuzzy msgid "No group specified." -msgstr "Não foi especificado nenhum perfil." +msgstr "Não foi especificado nenhum grupo." #: actions/groupblock.php:91 msgid "Only an admin can block group members." -msgstr "Apenas o administrador pode bloquear usuários do grupo." +msgstr "Somente um administrador pode bloquear usuários no grupo." #: actions/groupblock.php:95 -#, fuzzy msgid "User is already blocked from group." -msgstr "O usuário bloqueou você." +msgstr "O usuário já está bloqueado no grupo." #: actions/groupblock.php:100 -#, fuzzy msgid "User is not a member of group." -msgstr "Você não está assinando esse perfil." +msgstr "O usuário não é um membro do grupo" #: actions/groupblock.php:136 actions/groupmembers.php:314 -#, fuzzy msgid "Block user from group" -msgstr "Bloquear usuário" +msgstr "Bloquear o usuário no grupo" #: actions/groupblock.php:162 #, php-format @@ -1405,57 +1384,57 @@ msgid "" "be removed from the group, unable to post, and unable to subscribe to the " "group in the future." msgstr "" +"Tem certeza que deseja bloquear o usuário \"%s\" no grupo \"%s\"? Ele será " +"removido do grupo e impossibilitado de publicar e de se juntar ao grupo " +"futuramente." #: actions/groupblock.php:178 -#, fuzzy msgid "Do not block this user from this group" -msgstr "Não é possível acompanhar o usuário: Usuário não encontrado." +msgstr "Não bloquear este usuário neste grupo" #: actions/groupblock.php:179 -#, fuzzy msgid "Block this user from this group" -msgstr "Bloquear usuário" +msgstr "Bloquear este usuário neste grupo" #: actions/groupblock.php:196 msgid "Database error blocking user from group." msgstr "" +"Ocorreu um erro no banco de dados ao tentar bloquear o usuário no grupo." #: actions/groupbyid.php:74 msgid "No ID" -msgstr "" +msgstr "Sem ID" #: actions/groupdesignsettings.php:68 msgid "You must be logged in to edit a group." -msgstr "Você deve estar logado para editar um grupo." +msgstr "Você precisa estar autenticado para editar um grupo." #: actions/groupdesignsettings.php:141 -#, fuzzy msgid "Group design" -msgstr "Outras opções" +msgstr "Aparência do grupo" #: actions/groupdesignsettings.php:152 msgid "" "Customize the way your group looks with a background image and a colour " "palette of your choice." msgstr "" +"Personalize a aparência do grupo com uma imagem de fundo e uma paleta de " +"cores à sua escolha." #: actions/groupdesignsettings.php:263 actions/userdesignsettings.php:186 #: lib/designsettings.php:391 lib/designsettings.php:413 -#, fuzzy msgid "Couldn't update your design." -msgstr "Não foi possível atualizar o usuário." +msgstr "Não foi possível atualizar a aparência." #: actions/groupdesignsettings.php:287 actions/groupdesignsettings.php:297 #: actions/userdesignsettings.php:210 actions/userdesignsettings.php:220 #: actions/userdesignsettings.php:263 actions/userdesignsettings.php:273 -#, fuzzy msgid "Unable to save your design settings!" -msgstr "Não foi possível salvar suas configurações do Twitter!" +msgstr "Não foi possível salvar suas configurações da aparência!" #: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "As preferências de sincronização foram salvas." +msgstr "As configurações da aparência foram salvas." #: actions/grouplogo.php:139 actions/grouplogo.php:192 msgid "Group logo" @@ -1466,33 +1445,34 @@ msgstr "Logo do grupo" msgid "" "You can upload a logo image for your group. The maximum file size is %s." msgstr "" +"Você pode enviar uma imagem de logo para o seu grupo. O tamanho máximo do " +"arquivo é %s." #: actions/grouplogo.php:362 -#, fuzzy msgid "Pick a square area of the image to be the logo." -msgstr "Selecione uma área quadrada da imagem para ser seu avatar" +msgstr "Selecione uma área quadrada da imagem para definir a logo" #: actions/grouplogo.php:396 msgid "Logo updated." -msgstr "O avatar foi atualizado." +msgstr "A logo foi atualizada." #: actions/grouplogo.php:398 msgid "Failed updating logo." -msgstr "Não foi possível atualizar o avatar." +msgstr "Não foi possível atualizar a logo." #: actions/groupmembers.php:93 lib/groupnav.php:92 #, php-format msgid "%s group members" -msgstr "" +msgstr "Membros do grupo %s" #: actions/groupmembers.php:96 #, php-format msgid "%s group members, page %d" -msgstr "" +msgstr "Membros do grupo %s, pág. %d" #: actions/groupmembers.php:111 msgid "A list of the users in this group." -msgstr "" +msgstr "Uma lista dos usuários deste grupo." #: actions/groupmembers.php:175 lib/action.php:441 lib/groupnav.php:107 msgid "Admin" @@ -1503,33 +1483,31 @@ msgid "Block" msgstr "Bloquear" #: actions/groupmembers.php:441 -#, fuzzy msgid "Make user an admin of the group" -msgstr "Você deve ser o administrador do grupo para editá-lo" +msgstr "Tornar o usuário um administrador do grupo" #: actions/groupmembers.php:473 -#, fuzzy msgid "Make Admin" -msgstr "Admin" +msgstr "Tornar administrador" #: actions/groupmembers.php:473 msgid "Make this user an admin" -msgstr "" +msgstr "Torna este usuário um administrador" #: actions/grouprss.php:133 -#, fuzzy, php-format +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "Atualizações de %1$s no %2$s!" +msgstr "Atualizações dos membros de %1$s no %2$s!" #: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 msgid "Groups" -msgstr "" +msgstr "Grupos" #: actions/groups.php:64 #, php-format msgid "Groups, page %d" -msgstr "" +msgstr "Groupos, pág. %d" #: actions/groups.php:90 #, php-format @@ -1540,32 +1518,33 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"Os grupos de %%%%site.name%%%% lhe permite encontrar e conversar com pessoas " +"que tenham interesses similares. Após associar-se a um grupo, você pode " +"enviar mensagens para todos os seus membros usando a sintaxe \"!nomedogrupo" +"\". Não encontrou um grupo que lhe agrade? Experimente [procurar por um](%%%%" +"action.groupsearch%%%%) ou [criar o seu próprio!](%%%%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122 -#, fuzzy msgid "Create a new group" -msgstr "Criar uma nova conta" +msgstr "Criar um novo grupo" #: actions/groupsearch.php:52 -#, fuzzy, php-format +#, php-format msgid "" "Search for groups on %%site.name%% by their name, location, or description. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -"Procurar por pessoas em %%site.name%% por seus nomes, localidade ou " -"interesses. Separe os termos da busca com espaços; eles devem ter 3 " -"caracteres ou mais." +"Procurar grupos no %%site.name%% por seus nomes, localização ou descrição. " +"Separe os termos com espaços; eles devem ter 3 ou mais caracteres." #: actions/groupsearch.php:58 -#, fuzzy msgid "Group search" -msgstr "Procurar pessoas" +msgstr "Procurar grupos" #: actions/groupsearch.php:79 actions/noticesearch.php:117 #: actions/peoplesearch.php:83 -#, fuzzy msgid "No results." -msgstr "Nenhum resultado" +msgstr "Nenhum resultado." #: actions/groupsearch.php:82 #, php-format @@ -1573,6 +1552,8 @@ msgid "" "If you can't find the group you're looking for, you can [create it](%%action." "newgroup%%) yourself." msgstr "" +"Caso não encontre o grupo que está procurando, você pode [criá-lo](%%action." +"newgroup%%)." #: actions/groupsearch.php:85 #, php-format @@ -1580,15 +1561,16 @@ msgid "" "Why not [register an account](%%action.register%%) and [create the group](%%" "action.newgroup%%) yourself!" msgstr "" +"Por que você não [se cadastra](%%action.register%%) e [cria o grupo](%%" +"action.newgroup%%) você mesmo?" #: actions/groupunblock.php:91 msgid "Only an admin can unblock group members." -msgstr "" +msgstr "Somente um administrador pode desbloquear membros do grupo." #: actions/groupunblock.php:95 -#, fuzzy msgid "User is not blocked from group." -msgstr "O usuário bloqueou você." +msgstr "O usuário não está bloqueado no grupo." #: actions/groupunblock.php:128 actions/unblock.php:86 msgid "Error removing the block." @@ -1596,7 +1578,7 @@ msgstr "Erro na remoção do bloqueio." #: actions/imsettings.php:59 msgid "IM Settings" -msgstr "Configurações do IM" +msgstr "Configurações do MI" #: actions/imsettings.php:70 #, php-format @@ -1604,13 +1586,12 @@ msgid "" "You can send and receive notices through Jabber/GTalk [instant messages](%%" "doc.im%%). Configure your address and settings below." msgstr "" -"Você pode enviar e receber mensagens através dos [instant messages](%%doc.im%" -"%) Jabber/GTalk. Configure seu endereço e opções abaixo." +"Você pode enviar e receber mensagens através dos [mensageiros instantâneos](%" +"%doc.im%%) Jabber/GTalk. Configure seu endereço e opções abaixo." #: actions/imsettings.php:89 -#, fuzzy msgid "IM is not available." -msgstr "Esta página não está disponível em um " +msgstr "MI não está disponível" #: actions/imsettings.php:106 msgid "Current confirmed Jabber/GTalk address." @@ -1628,7 +1609,7 @@ msgstr "" #: actions/imsettings.php:124 msgid "IM Address" -msgstr "Endereço do IM" +msgstr "Endereço do MI" #: actions/imsettings.php:126 #, php-format @@ -1636,13 +1617,13 @@ msgid "" "Jabber or GTalk address, like \"UserName@example.org\". First, make sure to " "add %s to your buddy list in your IM client or on GTalk." msgstr "" -"Endereço de Jabber ou GTalk, ex: \"usuario@example.org\". Primeiro, " -"certifique-se de adicionar %s à sua lista de contatos no seu cliente de IM " +"Endereço de Jabber ou GTalk, ex: \"usuario@exemplo.org\". Primeiro, " +"certifique-se de adicionar %s à sua lista de contatos em seu cliente de MI " "ou no GTalk." #: actions/imsettings.php:143 msgid "Send me notices through Jabber/GTalk." -msgstr "Envie-me as mensagens via Jabber/GTalk." +msgstr "Envie-me mensagens via Jabber/GTalk." #: actions/imsettings.php:148 msgid "Post a notice when my Jabber/GTalk status changes." @@ -1651,7 +1632,7 @@ msgstr "Publicar uma mensagem quando eu mudar de status no Jabber/GTalk." #: actions/imsettings.php:153 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" -"Envie-me respostas de pessoas que eu não estou seguindo através do Jabber/" +"Envie-me respostas de pessoas que eu não estou assinando através do Jabber/" "GTalk." #: actions/imsettings.php:159 @@ -1709,17 +1690,18 @@ msgstr "" #: actions/invite.php:39 msgid "Invites have been disabled." -msgstr "" +msgstr "Os convites foram desabilitados." #: actions/invite.php:41 #, php-format msgid "You must be logged in to invite other users to use %s" -msgstr "Você deve estar logado para convidar outros usuários para usar o %s" +msgstr "" +"Você deve estar autenticado para convidar outros usuários para usar o %s" #: actions/invite.php:72 #, php-format msgid "Invalid email address: %s" -msgstr "Não é um endereço de e-mail válido: %s" +msgstr "Endereço de e-mail inválido: %s" #: actions/invite.php:110 msgid "Invitation(s) sent" @@ -1741,7 +1723,7 @@ msgstr "%s (%s)" #: actions/invite.php:136 msgid "" "These people are already users and you were automatically subscribed to them:" -msgstr "Estas pessoas já são usuárias e você as acompanha automaticamente:" +msgstr "Estas pessoas já são usuárias e você as assinou automaticamente:" #: actions/invite.php:144 msgid "Invitation(s) sent to the following people:" @@ -1778,14 +1760,14 @@ msgstr "Mensagem pessoal" msgid "Optionally add a personal message to the invitation." msgstr "Você pode, opcionalmente, adicionar uma mensagem pessoal ao convite." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Enviar" #: actions/invite.php:226 #, php-format msgid "%1$s has invited you to join them on %2$s" -msgstr "%1$s convidou você para se juntar ao %2$s" +msgstr "%1$s convidou você para se juntar a %2$s" #: actions/invite.php:228 #, php-format @@ -1817,13 +1799,13 @@ msgid "" "\n" "Sincerely, %2$s\n" msgstr "" -"%1$s convidou você para se juntar ao %2$s (%3$s).\n" +"%1$s convidou você para se juntar a %2$s (%3$s).\n" "\n" -"%2$s é um serviço de microblogagem que lhe permite manter-se atualizado com " -"as pessoas que você conhece e com as que lhe interessam.\n" +"%2$s é um serviço de microblog que lhe permite manter-se atualizado com as " +"pessoas que você conhece e com as que lhe interessam.\n" "\n" -"Você também pode compartilhar notícias sobre você mesmo, seus pensamentos, " -"ou sua vida on-line com as pessoas que lhe conhecem. Também é ótimo para " +"Você também pode compartilhar notícias sobre você mesmo, seus pensamentos ou " +"sua vida on-line com as pessoas que lhe conhecem. Também é ótimo para " "encontrar novas pessoas que compartilham os mesmos interesses que você.\n" "\n" "%1$s disse:\n" @@ -1845,84 +1827,76 @@ msgstr "" "Cordialmente, %2$s\n" #: actions/joingroup.php:60 -#, fuzzy msgid "You must be logged in to join a group." -msgstr "" -"Você deve estar autenticado para convidar outros usuários para usar o %s" +msgstr "Você deve estar autenticado para se associar a um grupo." #: actions/joingroup.php:90 lib/command.php:217 -#, fuzzy msgid "You are already a member of that group" -msgstr "Você já está assinando esses usuários:" +msgstr "Você já é um membro desse grupo." #: actions/joingroup.php:128 lib/command.php:234 -#, fuzzy, php-format +#, php-format msgid "Could not join user %s to group %s" -msgstr "Não é possível acompanhar o usuário: Usuário não encontrado." +msgstr "Não foi possível associar o usuário %s ao grupo %s" #: actions/joingroup.php:135 lib/command.php:239 -#, fuzzy, php-format +#, php-format msgid "%s joined group %s" -msgstr "%s / Favoritas de %s" +msgstr "%s associou-se ao grupo %s" #: actions/leavegroup.php:60 -#, fuzzy msgid "You must be logged in to leave a group." -msgstr "" -"Você deve estar autenticado para convidar outros usuários para usar o %s" +msgstr "Você deve estar autenticado para sair de um grupo." #: actions/leavegroup.php:90 lib/command.php:268 -#, fuzzy msgid "You are not a member of that group." -msgstr "Você não está assinando esse perfil." +msgstr "Você não é um membro desse grupo." #: actions/leavegroup.php:119 lib/command.php:278 -#, fuzzy msgid "Could not find membership record." -msgstr "Não foi possível atualizar o registro do usuário." +msgstr "Não foi possível encontrar o registro do membro." #: actions/leavegroup.php:127 lib/command.php:284 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "Não é possível acompanhar o usuário: Usuário não encontrado." +msgstr "Não foi possível remover o usuário %s do grupo %s" #: actions/leavegroup.php:134 lib/command.php:289 #, php-format msgid "%s left group %s" -msgstr "" +msgstr "%s deixou o grupo %s" #: actions/login.php:83 actions/register.php:137 msgid "Already logged in." -msgstr "Já está logado." +msgstr "Já está autenticado." #: actions/login.php:114 actions/login.php:124 -#, fuzzy msgid "Invalid or expired token." -msgstr "O conteúdo da mensagem é inválido" +msgstr "Token inválido ou expirado." #: actions/login.php:147 msgid "Incorrect username or password." msgstr "Nome de usuário e/ou senha incorreto(s)." #: actions/login.php:153 -#, fuzzy msgid "Error setting user. You are probably not authorized." -msgstr "Não autorizado." +msgstr "" +"Erro na configuração do usuário. Você provavelmente não tem autorização." #: actions/login.php:208 actions/login.php:261 lib/action.php:459 #: lib/logingroupnav.php:79 msgid "Login" -msgstr "Logar" +msgstr "Entrar" #: actions/login.php:247 msgid "Login to site" -msgstr "" +msgstr "Autenticar-se no site" #: actions/login.php:250 actions/profilesettings.php:106 #: actions/register.php:423 actions/showgroup.php:236 actions/tagother.php:94 #: lib/groupeditform.php:152 lib/userprofile.php:131 msgid "Nickname" -msgstr "Apelido" +msgstr "Usuário" #: actions/login.php:253 actions/register.php:428 #: lib/accountsettingsaction.php:116 @@ -1936,8 +1910,8 @@ msgstr "Lembrar neste computador" #: actions/login.php:257 actions/register.php:479 msgid "Automatically login in the future; not for shared computers!" msgstr "" -"Entrar automaticamente sem pedir a senha. Não use em computadores " -"compartilhados!" +"Entra automaticamente da próxima vez, sem pedir a senha. Não use em " +"computadores compartilhados!" #: actions/login.php:267 msgid "Lost or forgotten password?" @@ -1952,46 +1926,46 @@ msgstr "" "senha antes de alterar suas configurações." #: actions/login.php:290 -#, fuzzy, php-format +#, php-format msgid "" "Login with your username and password. Don't have a username yet? [Register]" "(%%action.register%%) a new account." msgstr "" -"Logar-se com seu nome de usuário e senha. Não tem um nome de usuário ainda? " -"[Registre](%%action.register%%) uma nova conta, ou use uma [OpenID](%%action." -"openidlogin%%)." +"Digite seu nome de usuário e senha. Ainda não possui um usuário? [Registre](%" +"%action.register%%) uma nova conta." #: actions/makeadmin.php:91 msgid "Only an admin can make another user an admin." msgstr "" +"Somente um administrador pode dar privilégios de administração para outro " +"usuário." #: actions/makeadmin.php:95 #, php-format msgid "%s is already an admin for group \"%s\"." -msgstr "" +msgstr "%s já é um administrador do grupo \"%s\"." #: actions/makeadmin.php:132 #, php-format msgid "Can't get membership record for %s in group %s" -msgstr "" +msgstr "Não foi possível obter o registro de membro de %s no grupo %s" #: actions/makeadmin.php:145 #, php-format msgid "Can't make %s an admin for group %s" -msgstr "" +msgstr "Não foi possível tornar %s um administrador do grupo %s" #: actions/microsummary.php:69 msgid "No current status" -msgstr "Nenhum status atual" +msgstr "Nenhuma mensagem atual" #: actions/newgroup.php:53 msgid "New group" -msgstr "" +msgstr "Novo grupo" #: actions/newgroup.php:110 -#, fuzzy msgid "Use this form to create a new group." -msgstr "Você pode criar uma nova conta usando esse formulário. " +msgstr "Utilize este formulário para criar um novo grupo." #: actions/newmessage.php:71 actions/newmessage.php:231 msgid "New message" @@ -1999,7 +1973,7 @@ msgstr "Nova mensagem" #: actions/newmessage.php:121 actions/newmessage.php:161 lib/command.php:367 msgid "You can't send a message to this user." -msgstr "Você não pode enviar uma mensagem para esse usuário." +msgstr "Você não pode enviar mensagens para este usuário." #: actions/newmessage.php:144 actions/newnotice.php:136 lib/command.php:351 #: lib/command.php:484 @@ -2008,19 +1982,18 @@ msgstr "Nenhum conteúdo!" #: actions/newmessage.php:158 msgid "No recipient specified." -msgstr "Nenhum destinatário especificado." +msgstr "Não foi especificado nenhum destinatário." #: actions/newmessage.php:164 lib/command.php:370 msgid "" "Don't send a message to yourself; just say it to yourself quietly instead." msgstr "" -"Não envie uma mensagem para você mesmo(a); ao invés disso, apenas diga-a " -"para si." +"Não envie mensagens para você mesmo(a); ao invés disso, apenas diga-a para " +"si, discretamente." #: actions/newmessage.php:181 -#, fuzzy msgid "Message sent" -msgstr "Nova mensagem" +msgstr "A mensagem foi enviada" #: actions/newmessage.php:185 lib/command.php:376 #, php-format @@ -2037,7 +2010,7 @@ msgstr "Nova mensagem" #: actions/newnotice.php:211 msgid "Notice posted" -msgstr "Mensagem publicada" +msgstr "A mensagem foi publicada" #: actions/noticesearch.php:68 #, php-format @@ -2045,17 +2018,17 @@ msgid "" "Search for notices on %%site.name%% by their contents. Separate search terms " "by spaces; they must be 3 characters or more." msgstr "" -"Procurar mensagens em %%site.name%% por seu conteúdo. Separe os termos da " -"busca com espaços; eles devem ter 3 caracteres ou mais." +"Procurar mensagens no %%site.name%% por seu conteúdo. Separe os termos da " +"busca com espaços; eles devem ter 3 ou mais caracteres." #: actions/noticesearch.php:78 msgid "Text search" msgstr "Procurar por texto" #: actions/noticesearch.php:91 -#, fuzzy, php-format +#, php-format msgid "Search results for \"%s\" on %s" -msgstr " Procurar por \"%s\" no fluxo de mensagens" +msgstr "Resultados da procura por \"%s\" no %s" #: actions/noticesearch.php:121 #, php-format @@ -2063,6 +2036,8 @@ msgid "" "Be the first to [post on this topic](%%%%action.newnotice%%%%?" "status_textarea=%s)!" msgstr "" +"Seja o primeiro a [publicar sobre este tópico](%%%%action.newnotice%%%%?" +"status_textarea=%s)!" #: actions/noticesearch.php:124 #, php-format @@ -2070,16 +2045,19 @@ msgid "" "Why not [register an account](%%%%action.register%%%%) and be the first to " "[post on this topic](%%%%action.newnotice%%%%?status_textarea=%s)!" msgstr "" +"Por que você não [registra uma conta](%%%%action.register%%%%) pra ser o " +"primeiro a [publicar sobre este tópico](%%%%action.newnotice%%%%?" +"status_textarea=%s)?" #: actions/noticesearchrss.php:96 #, php-format msgid "Updates with \"%s\"" -msgstr "" +msgstr "Mensagens com \"%s\"" #: actions/noticesearchrss.php:98 -#, fuzzy, php-format +#, php-format msgid "Updates matching search term \"%1$s\" on %2$s!" -msgstr "Todas as atualizações correspondentes ao termo \"%s\"" +msgstr "Mensagens correspondentes aos termos \"%1$s\" no %2$s!" #: actions/nudge.php:85 msgid "" @@ -2090,11 +2068,11 @@ msgstr "" #: actions/nudge.php:94 msgid "Nudge sent" -msgstr "Chamada de atenção enviada" +msgstr "A chamada de atenção foi enviada" #: actions/nudge.php:97 msgid "Nudge sent!" -msgstr "Chamada de atenção enviada!" +msgstr "A chamada de atenção foi enviada!" #: actions/oembed.php:79 actions/shownotice.php:100 msgid "Notice has no profile" @@ -2103,28 +2081,28 @@ msgstr "A mensagem não está associada a nenhum perfil" #: actions/oembed.php:86 actions/shownotice.php:180 #, php-format msgid "%1$s's status on %2$s" -msgstr "Mensagem de %1$s em %2$s" +msgstr "Mensagem de %1$s no %2$s" #: actions/oembed.php:157 msgid "content type " -msgstr "" +msgstr "tipo de conteúdo " #: actions/oembed.php:160 msgid "Only " -msgstr "" +msgstr "Apenas " #: actions/oembed.php:181 actions/oembed.php:200 lib/api.php:1031 #: lib/api.php:1059 lib/api.php:1169 msgid "Not a supported data format." -msgstr "Formato de dados não suportado." +msgstr "Não é um formato de dados suportado." #: actions/opensearch.php:64 msgid "People Search" -msgstr "Procurar Pessoas" +msgstr "Procurar pessoas" #: actions/opensearch.php:67 msgid "Notice Search" -msgstr "Procurar mensagem" +msgstr "Procurar mensagens" #: actions/othersettings.php:60 msgid "Other Settings" @@ -2132,28 +2110,27 @@ msgstr "Outras configurações" #: actions/othersettings.php:71 msgid "Manage various other options." -msgstr "Gerenciar várias outras opções." +msgstr "Gerencia várias outras opções." #: actions/othersettings.php:108 msgid " (free service)" -msgstr "" +msgstr " (serviço livre)" #: actions/othersettings.php:116 msgid "Shorten URLs with" -msgstr "" +msgstr "Encolher URLs com" #: actions/othersettings.php:117 msgid "Automatic shortening service to use." msgstr "Serviço de encolhimento automático a ser utilizado." #: actions/othersettings.php:122 -#, fuzzy msgid "View profile designs" -msgstr "Configurações do perfil" +msgstr "Visualizar aparências do perfil" #: actions/othersettings.php:123 msgid "Show or hide profile designs." -msgstr "" +msgstr "Exibir ou esconder as aparências do perfil." #: actions/othersettings.php:153 msgid "URL shortening service is too long (max 50 chars)." @@ -2162,12 +2139,12 @@ msgstr "O serviço de encolhimento de URL é muito extenso (máx. 50 caracteres) #: actions/outbox.php:58 #, php-format msgid "Outbox for %s - page %d" -msgstr "Enviadas para %s - pág. %d" +msgstr "Enviadas de %s - pág. %d" #: actions/outbox.php:61 #, php-format msgid "Outbox for %s" -msgstr "Envidas para %s" +msgstr "Enviadas de %s" #: actions/outbox.php:116 msgid "This is your outbox, which lists private messages you have sent." @@ -2180,22 +2157,20 @@ msgid "Change password" msgstr "Alterar a senha" #: actions/passwordsettings.php:69 -#, fuzzy msgid "Change your password." -msgstr "Altera a sua senha" +msgstr "Altere a sua senha" #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy msgid "Password change" -msgstr "A senha foi salva." +msgstr "Alterar a senha" #: actions/passwordsettings.php:104 msgid "Old password" -msgstr "Senha antiga" +msgstr "Senha anterior" #: actions/passwordsettings.php:108 actions/recoverpassword.php:235 msgid "New password" -msgstr "Nova senha" +msgstr "Senha nova" #: actions/passwordsettings.php:109 msgid "6 or more characters" @@ -2216,7 +2191,7 @@ msgstr "Alterar" #: actions/passwordsettings.php:154 actions/register.php:230 msgid "Password must be 6 or more characters." -msgstr "A senha deve ter 6 ou mais caracteres." +msgstr "A senha deve ter, no mínimo, 6 caracteres." #: actions/passwordsettings.php:157 actions/register.php:233 msgid "Passwords don't match." @@ -2224,7 +2199,7 @@ msgstr "As senhas não coincidem." #: actions/passwordsettings.php:165 msgid "Incorrect old password" -msgstr "A senha antiga está incorreta" +msgstr "A senha anterior está errada" #: actions/passwordsettings.php:181 msgid "Error saving user; invalid." @@ -2240,150 +2215,141 @@ msgstr "A senha foi salva." #: actions/pathsadminpanel.php:59 lib/adminpanelaction.php:308 msgid "Paths" -msgstr "" +msgstr "Caminhos" #: actions/pathsadminpanel.php:70 msgid "Path and server settings for this StatusNet site." -msgstr "" +msgstr "Configurações dos caminhos e do servidor para este site StatusNet." #: actions/pathsadminpanel.php:140 -#, fuzzy, php-format +#, php-format msgid "Theme directory not readable: %s" -msgstr "Esta página não está disponível em um " +msgstr "Sem permissão de leitura no diretório de temas: %s" #: actions/pathsadminpanel.php:146 #, php-format msgid "Avatar directory not writable: %s" -msgstr "" +msgstr "Sem permissão de escrita no diretório de avatares: %s" #: actions/pathsadminpanel.php:152 #, php-format msgid "Background directory not writable: %s" -msgstr "" +msgstr "Sem permissão de escrita no diretório de imagens de fundo: %s" #: actions/pathsadminpanel.php:160 #, php-format msgid "Locales directory not readable: %s" -msgstr "" +msgstr "Sem permissão de leitura no diretório de locales: %s" #: actions/pathsadminpanel.php:166 msgid "Invalid SSL server. The maximum length is 255 characters." msgstr "" +"Servidor SSL inválido. O comprimento máximo deve ser de 255 caracteres." #: actions/pathsadminpanel.php:217 actions/siteadminpanel.php:58 #: lib/adminpanelaction.php:299 -#, fuzzy msgid "Site" -msgstr "Convidar" +msgstr "Site" #: actions/pathsadminpanel.php:221 msgid "Path" -msgstr "" +msgstr "Caminho" #: actions/pathsadminpanel.php:221 -#, fuzzy msgid "Site path" -msgstr "Nova mensagem" +msgstr "Caminho do site" #: actions/pathsadminpanel.php:225 msgid "Path to locales" -msgstr "" +msgstr "Caminho para os locales" #: actions/pathsadminpanel.php:225 msgid "Directory path to locales" -msgstr "" +msgstr "Caminho do diretório de locales" #: actions/pathsadminpanel.php:232 msgid "Theme" -msgstr "" +msgstr "Tema" #: actions/pathsadminpanel.php:237 msgid "Theme server" -msgstr "" +msgstr "Servidor de temas" #: actions/pathsadminpanel.php:241 msgid "Theme path" -msgstr "" +msgstr "Caminho dos temas" #: actions/pathsadminpanel.php:245 msgid "Theme directory" -msgstr "" +msgstr "Diretório dos temas" #: actions/pathsadminpanel.php:252 -#, fuzzy msgid "Avatars" -msgstr "Avatar" +msgstr "Avatares" #: actions/pathsadminpanel.php:257 -#, fuzzy msgid "Avatar server" -msgstr "Configurações do avatar" +msgstr "Servidor de avatares" #: actions/pathsadminpanel.php:261 -#, fuzzy msgid "Avatar path" -msgstr "O avatar foi atualizado." +msgstr "Caminho dos avatares" #: actions/pathsadminpanel.php:265 -#, fuzzy msgid "Avatar directory" -msgstr "O avatar foi atualizado." +msgstr "Diretório dos avatares" #: actions/pathsadminpanel.php:274 msgid "Backgrounds" -msgstr "" +msgstr "Imagens de fundo" #: actions/pathsadminpanel.php:278 msgid "Background server" -msgstr "" +msgstr "Servidor de imagens de fundo" #: actions/pathsadminpanel.php:282 msgid "Background path" -msgstr "" +msgstr "Caminho das imagens de fundo" #: actions/pathsadminpanel.php:286 msgid "Background directory" -msgstr "" +msgstr "Diretório das imagens de fundo" #: actions/pathsadminpanel.php:293 -#, fuzzy msgid "SSL" -msgstr "SMS" +msgstr "SSL" #: actions/pathsadminpanel.php:296 actions/siteadminpanel.php:346 -#, fuzzy msgid "Never" -msgstr "Recuperar" +msgstr "Nunca" #: actions/pathsadminpanel.php:297 -#, fuzzy msgid "Sometimes" -msgstr "Mensagens" +msgstr "Algumas vezes" #: actions/pathsadminpanel.php:298 msgid "Always" -msgstr "" +msgstr "Sempre" #: actions/pathsadminpanel.php:302 msgid "Use SSL" -msgstr "" +msgstr "Usar SSL" #: actions/pathsadminpanel.php:303 msgid "When to use SSL" -msgstr "" +msgstr "Quando usar SSL" #: actions/pathsadminpanel.php:308 msgid "SSL Server" -msgstr "" +msgstr "Servidor SSL" #: actions/pathsadminpanel.php:309 msgid "Server to direct SSL requests to" -msgstr "" +msgstr "Servidor para onde devem ser direcionadas as requisições SSL" #: actions/pathsadminpanel.php:325 -#, fuzzy msgid "Save paths" -msgstr "Nova mensagem" +msgstr "Salvar caminhos" #: actions/peoplesearch.php:52 #, php-format @@ -2391,9 +2357,8 @@ msgid "" "Search for people on %%site.name%% by their name, location, or interests. " "Separate the terms by spaces; they must be 3 characters or more." msgstr "" -"Procurar por pessoas em %%site.name%% por seus nomes, localidade ou " -"interesses. Separe os termos da busca com espaços; eles devem ter 3 " -"caracteres ou mais." +"Procurar pessoas no %%site.name%% por seus nomes, localidade ou interesses. " +"Separe os termos da busca com espaços; eles devem ter 3 ou mais caracteres." #: actions/peoplesearch.php:58 msgid "People search" @@ -2417,6 +2382,7 @@ msgstr "O conteúdo da mensagem é inválido" #, php-format msgid "Notice license ‘%s’ is not compatible with site license ‘%s’." msgstr "" +"A licença ‘%s’ da mensagem não é compatível com a licença ‘%s’ do site." #: actions/profilesettings.php:60 msgid "Profile settings" @@ -2430,9 +2396,8 @@ msgstr "" "saibam mais sobre você." #: actions/profilesettings.php:99 -#, fuzzy msgid "Profile information" -msgstr "Perfil desconhecido" +msgstr "Informações do perfil" #: actions/profilesettings.php:108 lib/groupeditform.php:154 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" @@ -2454,14 +2419,13 @@ msgid "URL of your homepage, blog, or profile on another site" msgstr "URL do seu site, blog ou perfil em outro site" #: actions/profilesettings.php:122 actions/register.php:460 -#, fuzzy, php-format +#, php-format msgid "Describe yourself and your interests in %d chars" -msgstr "Descreva a si mesmo e seus interesses em 140 caracteres." +msgstr "Descreva a si mesmo e os seus interesses em %d caracteres" #: actions/profilesettings.php:125 actions/register.php:463 -#, fuzzy msgid "Describe yourself and your interests" -msgstr "Descreva a si mesmo e seus interesses em 140 caracteres." +msgstr "Descreva a si mesmo e os seus interesses" #: actions/profilesettings.php:127 actions/register.php:465 msgid "Bio" @@ -2480,13 +2444,13 @@ msgstr "Onde você está, ex: \"cidade, estado (ou região), país\"" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Compartilhe minha localização atual ao publicar mensagens" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 #: lib/subscriptionlist.php:108 lib/userprofile.php:209 msgid "Tags" -msgstr "Tags" +msgstr "Etiquetas" #: actions/profilesettings.php:147 msgid "" @@ -2514,12 +2478,13 @@ msgstr "Em que fuso horário você normalmente está?" #: actions/profilesettings.php:167 msgid "" "Automatically subscribe to whoever subscribes to me (best for non-humans)" -msgstr "Assinar automaticamente à quem me assinar" +msgstr "" +"Assinar automaticamente à quem me assinar (melhor para perfis não humanos)" #: actions/profilesettings.php:228 actions/register.php:223 -#, fuzzy, php-format +#, php-format msgid "Bio is too long (max %d chars)." -msgstr "Descrição muito extensa (máximo 140 caracteres)." +msgstr "A descrição é muito extensa (máximo %d caracteres)." #: actions/profilesettings.php:235 actions/siteadminpanel.php:164 msgid "Timezone not selected." @@ -2539,9 +2504,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Não foi possível atualizar o usuário para assinar automaticamente." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Não foi possível salvar as etiquetas." +msgstr "Não foi possível salvar as preferências de localização." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -2558,35 +2522,32 @@ msgstr "As configurações foram salvas." #: actions/public.php:83 #, php-format msgid "Beyond the page limit (%s)" -msgstr "" +msgstr "Além do limite da página (%s)" #: actions/public.php:92 msgid "Could not retrieve public stream." msgstr "Não foi possível recuperar o fluxo público." #: actions/public.php:129 -#, fuzzy, php-format +#, php-format msgid "Public timeline, page %d" -msgstr "Mensagens públicas" +msgstr "Mensagens públicas, pág. %d" #: actions/public.php:131 lib/publicgroupnav.php:79 msgid "Public timeline" msgstr "Mensagens públicas" #: actions/public.php:151 -#, fuzzy msgid "Public Stream Feed (RSS 1.0)" -msgstr "Feed de mensagens públicas" +msgstr "Fonte de mensagens públicas (RSS 1.0)" #: actions/public.php:155 -#, fuzzy msgid "Public Stream Feed (RSS 2.0)" -msgstr "Feed de mensagens públicas" +msgstr "Fonte de mensagens públicas (RSS 2.0)" #: actions/public.php:159 -#, fuzzy msgid "Public Stream Feed (Atom)" -msgstr "Feed de mensagens públicas" +msgstr "Fonte de mensagens públicas (Atom)" #: actions/public.php:179 #, php-format @@ -2594,16 +2555,20 @@ msgid "" "This is the public timeline for %%site.name%% but no one has posted anything " "yet." msgstr "" +"Esse é o fluxo de mensagens públicas de %%site.name%%, mas ninguém publicou " +"nada ainda." #: actions/public.php:182 msgid "Be the first to post!" -msgstr "" +msgstr "Seja o primeiro a publicar!" #: actions/public.php:186 #, php-format msgid "" "Why not [register an account](%%action.register%%) and be the first to post!" msgstr "" +"Por que você não [registra uma conta](%%action.register%%) pra ser o " +"primeiro a publicar?" #: actions/public.php:233 #, php-format @@ -2613,35 +2578,39 @@ msgid "" "tool. [Join now](%%action.register%%) to share notices about yourself with " "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" +"Este é %%site.name%%, um serviço de [microblog](http://pt.wikipedia.org/wiki/" +"Microblogging) baseado no software livre [StatusNet](http://status.net/). " +"[Cadastre-se agora](%%action.register%%) para compartilhar notícias sobre " +"você com seus amigos, família e colegas! ([Saiba mais](%%doc.help%%))" #: actions/public.php:238 -#, fuzzy, php-format +#, php-format msgid "" "This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-" "blogging) service based on the Free Software [StatusNet](http://status.net/) " "tool." msgstr "" -"Este é %%site.name%%, um serviço de [micro-blogging](http://pt.wikipedia.org/" -"wiki/Microblogging)" +"Este é %%site.name%%, um serviço de [microblog](http://pt.wikipedia.org/wiki/" +"Microblogging) baseado no software livre [StatusNet](http://status.net/)." #: actions/publictagcloud.php:57 -#, fuzzy msgid "Public tag cloud" -msgstr "Fluxo de mensagens públicas" +msgstr "Nuvem de etiquetas públicas" #: actions/publictagcloud.php:63 #, php-format msgid "These are most popular recent tags on %s " -msgstr "" +msgstr "Estas são as etiquetas recentes mais populares no %s " #: actions/publictagcloud.php:69 #, php-format msgid "No one has posted a notice with a [hashtag](%%doc.tags%%) yet." msgstr "" +"Ninguém publicou nenhuma mensagem com a [etiqueta](%%doc.tags%%) ainda." #: actions/publictagcloud.php:72 msgid "Be the first to post one!" -msgstr "" +msgstr "Seja o primeiro a publicar uma!" #: actions/publictagcloud.php:75 #, php-format @@ -2649,14 +2618,16 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to post " "one!" msgstr "" +"Por que você não [registra uma conta](%%action.register%%) pra ser o " +"primeiro a publicar?" #: actions/publictagcloud.php:135 msgid "Tag cloud" -msgstr "" +msgstr "Nuvem de etiquetas" #: actions/recoverpassword.php:36 msgid "You are already logged in!" -msgstr "Você já está logado!" +msgstr "Você já está autenticado!" #: actions/recoverpassword.php:62 msgid "No such recovery code." @@ -2688,22 +2659,24 @@ msgid "" "If you have forgotten or lost your password, you can get a new one sent to " "the email address you have stored in your account." msgstr "" +"Se você esqueceu ou perdeu a sua senha, você pode receber uma nova no " +"endereço de e-mail que cadastrou na sua conta." #: actions/recoverpassword.php:158 msgid "You have been identified. Enter a new password below. " -msgstr "" +msgstr "Você foi identificado. Digite uma nova senha abaixo. " #: actions/recoverpassword.php:188 msgid "Password recovery" -msgstr "" +msgstr "Recuperação de senha" #: actions/recoverpassword.php:191 msgid "Nickname or email address" -msgstr "" +msgstr "Identificação ou endereço de e-mail" #: actions/recoverpassword.php:193 msgid "Your nickname on this server, or your registered email address." -msgstr "Seu apelido neste servidor, ou seu e-mail registrado." +msgstr "Sua identificação neste servidor, ou seu e-mail cadastrado." #: actions/recoverpassword.php:199 actions/recoverpassword.php:200 msgid "Recover" @@ -2735,7 +2708,7 @@ msgstr "Restaurar" #: actions/recoverpassword.php:252 msgid "Enter a nickname or email address." -msgstr "Entre com o apelido ou endereço de e-mail." +msgstr "Digite a identificação ou endereço de e-mail." #: actions/recoverpassword.php:272 msgid "No user with that email address or username." @@ -2749,7 +2722,7 @@ msgstr "Nenhum endereço de e-mail registrado para esse usuário." #: actions/recoverpassword.php:301 msgid "Error saving address confirmation." -msgstr "Erro ao salvar o endereço de confirmação" +msgstr "Erro ao salvar o endereço de confirmação." #: actions/recoverpassword.php:325 msgid "" @@ -2765,7 +2738,7 @@ msgstr "Restauração inesperada da senha." #: actions/recoverpassword.php:352 msgid "Password must be 6 chars or more." -msgstr "A senha deve ter 6 caracteres ou mais." +msgstr "A senha deve ter 6 ou mais caracteres." #: actions/recoverpassword.php:356 msgid "Password and confirmation do not match." @@ -2778,16 +2751,16 @@ msgstr "Erro na configuração do usuário." #: actions/recoverpassword.php:382 msgid "New password successfully saved. You are now logged in." msgstr "" -"A nova senha foi salva com sucesso. A partir de agora você já está logado." +"A nova senha foi salva com sucesso. A partir de agora você já está " +"autenticado." #: actions/register.php:85 actions/register.php:189 actions/register.php:404 msgid "Sorry, only invited people can register." -msgstr "Desculpe, somente convidados podem se registrar." +msgstr "Desculpe, mas somente convidados podem se registrar." #: actions/register.php:92 -#, fuzzy msgid "Sorry, invalid invitation code." -msgstr "Erro com o código de confirmação." +msgstr "Desculpe, mas o código do convite é inválido." #: actions/register.php:112 msgid "Registration successful" @@ -2796,7 +2769,7 @@ msgstr "Registro realizado com sucesso" #: actions/register.php:114 actions/register.php:502 lib/action.php:456 #: lib/logingroupnav.php:85 msgid "Register" -msgstr "Registrar" +msgstr "Registrar-se" #: actions/register.php:135 msgid "Registration not allowed." @@ -2823,6 +2796,8 @@ msgid "" "With this form you can create a new account. You can then post notices and " "link up to friends and colleagues. " msgstr "" +"Através deste formulário você pode criar uma nova conta. A partir daí você " +"pode publicar mensagens e se conectar a amigos e colegas. " #: actions/register.php:424 msgid "1-64 lowercase letters or numbers, no punctuation or spaces. Required." @@ -2848,7 +2823,7 @@ msgstr "Usado apenas para atualizações, anúncios e recuperações de senha" #: actions/register.php:449 msgid "Longer name, preferably your \"real\" name" -msgstr "Nome completo (nome e sobrenome), de preferência seu nome \"real\"" +msgstr "Nome completo, de preferência seu nome \"real\"" #: actions/register.php:493 msgid "My text and files are available under " @@ -2856,16 +2831,15 @@ msgstr "Meus textos e arquivos estão disponíveis sob " #: actions/register.php:495 msgid "Creative Commons Attribution 3.0" -msgstr "" +msgstr "Creative Commons Attribution 3.0" #: actions/register.php:496 -#, fuzzy msgid "" " except this private data: password, email address, IM address, and phone " "number." msgstr "" -" exceto estes dados privados: senha, endereço de e-mail, endereço de IM, " -"número de telefone." +" exceto estes dados particulares: senha, endereço de e-mail, endereço de MI " +"e número de telefone." #: actions/register.php:537 #, php-format @@ -2885,14 +2859,14 @@ msgid "" "\n" "Thanks for signing up and we hope you enjoy using this service." msgstr "" -"Parabéns, %s! E bem-vindo(a) ao %%%%site.name%%%%. A partir daqui, você pode " -"querer...\n" +"Parabéns, %s! E bem-vindo(a) a %%%%site.name%%%%. A partir daqui, você " +"pode...\n" "\n" "* Acessar [seu perfil](%s) e publicar sua primeira mensagem.\n" "* Adicionar um [endereço de Jabber/GTalk](%%%%action.imsettings%%%%) para " "que você possa publicar via mensagens instantâneas.\n" -"* [Procurar por pessoas](%%%%action.peoplesearch%%%%) que você conheça ou " -"que tenham os mesmos interesses que você. \n" +"* [Procurar pessoas](%%%%action.peoplesearch%%%%) que você conheça ou que " +"tenham os mesmos interesses que você. \n" "* Atualizar suas [configurações de perfil](%%%%action.profilesettings%%%%) " "para que outras pessoas saibam mais sobre você. \n" "* Ler a [documentação on-line](%%%%doc.help%%%%) para conhecer os recursos " @@ -2917,7 +2891,7 @@ msgid "" msgstr "" "Para assinar, você pode [autenticar-se](%%action.login%%), ou [registrar](%%" "action.register%%) uma nova conta. Se você já tem uma conta em um [site de " -"microblogagem compatível](%%doc.openmublog%%), informe a URL do seu perfil " +"microblog compatível](%%doc.openmublog%%), informe a URL do seu perfil " "abaixo." #: actions/remotesubscribe.php:112 @@ -2925,25 +2899,24 @@ msgid "Remote subscribe" msgstr "Assinatura remota" #: actions/remotesubscribe.php:124 -#, fuzzy msgid "Subscribe to a remote user" -msgstr "Assinar este usuário" +msgstr "Assinar um usuário remoto" #: actions/remotesubscribe.php:129 msgid "User nickname" -msgstr "Apelido do usuário" +msgstr "Identificação do usuário" #: actions/remotesubscribe.php:130 msgid "Nickname of the user you want to follow" -msgstr "Apelido do usuário que você quer seguir" +msgstr "Identificação do usuário que você quer seguir" #: actions/remotesubscribe.php:133 msgid "Profile URL" -msgstr "URL do Perfil" +msgstr "URL do perfil" #: actions/remotesubscribe.php:134 msgid "URL of your profile on another compatible microblogging service" -msgstr "URL do seu perfil em outro serviço de microblogagem compatível" +msgstr "URL do seu perfil em outro serviço de microblog compatível" #: actions/remotesubscribe.php:137 lib/subscribeform.php:139 #: lib/userprofile.php:365 @@ -2955,49 +2928,41 @@ msgid "Invalid profile URL (bad format)" msgstr "A URL do perfil é inválida (formato inválido)" #: actions/remotesubscribe.php:168 -#, fuzzy msgid "Not a valid profile URL (no YADIS document or invalid XRDS defined)." -msgstr "Não é uma URL de perfil válida (nenhum documento YADIS)." +msgstr "" +"Não é uma URL de perfil válida (nenhum documento YADIS ou XRDS inválido)." #: actions/remotesubscribe.php:176 -#, fuzzy msgid "That’s a local profile! Login to subscribe." msgstr "Esse é um perfil local! Autentique-se para assinar." #: actions/remotesubscribe.php:183 -#, fuzzy msgid "Couldn’t get a request token." msgstr "Não foi possível obter um token de requisição." #: actions/repeat.php:57 -#, fuzzy msgid "Only logged-in users can repeat notices." -msgstr "As caixas postais são legíveis somente pelo seu próprio usuário." +msgstr "Apenas usuários autenticados podem repetir mensagens." #: actions/repeat.php:64 actions/repeat.php:71 -#, fuzzy msgid "No notice specified." -msgstr "Não foi especificado nenhum perfil." +msgstr "Não foi especificada nenhuma mensagem." #: actions/repeat.php:76 -#, fuzzy msgid "You can't repeat your own notice." -msgstr "Você não pode se registrar se não aceitar a licença." +msgstr "Você não pode repetir sua própria mensagem." #: actions/repeat.php:90 -#, fuzzy msgid "You already repeated that notice." -msgstr "Você já bloqueou esse usuário." +msgstr "Você já repetiu essa mensagem." #: actions/repeat.php:114 lib/noticelist.php:621 -#, fuzzy msgid "Repeated" -msgstr "Criar" +msgstr "Repetida" #: actions/repeat.php:119 -#, fuzzy msgid "Repeated!" -msgstr "Criar" +msgstr "Repetida!" #: actions/replies.php:125 actions/repliesrss.php:68 #: lib/personalgroupnav.php:105 @@ -3006,24 +2971,24 @@ msgid "Replies to %s" msgstr "Respostas para %s" #: actions/replies.php:127 -#, fuzzy, php-format +#, php-format msgid "Replies to %s, page %d" -msgstr "Respostas para %s" +msgstr "Respostas para %s, pag. %d" #: actions/replies.php:144 #, php-format msgid "Replies feed for %s (RSS 1.0)" -msgstr "" +msgstr "Fonte de respostas para %s (RSS 1.0)" #: actions/replies.php:151 #, php-format msgid "Replies feed for %s (RSS 2.0)" -msgstr "" +msgstr "Fonte de respostas para %s (RSS 2.0)" #: actions/replies.php:158 -#, fuzzy, php-format +#, php-format msgid "Replies feed for %s (Atom)" -msgstr "Mensagens de %s" +msgstr "Fonte de respostas para %s (Atom)" #: actions/replies.php:198 #, php-format @@ -3031,6 +2996,8 @@ msgid "" "This is the timeline showing replies to %s but %s hasn't received a notice " "to his attention yet." msgstr "" +"Esse é o fluxo de mensagens de resposta para %s, mas %s ainda não recebeu " +"nenhuma mensagem direcionada a ele(a)." #: actions/replies.php:203 #, php-format @@ -3038,6 +3005,8 @@ msgid "" "You can engage other users in a conversation, subscribe to more people or " "[join groups](%%action.groups%%)." msgstr "" +"Você pode envolver outros usuários na conversa. Pra isso, assine mais " +"pessoas ou [associe-se a grupos](%%action.groups%%)." #: actions/replies.php:205 #, php-format @@ -3045,51 +3014,54 @@ msgid "" "You can try to [nudge %s](../%s) or [post something to his or her attention]" "(%%%%action.newnotice%%%%?status_textarea=%s)." msgstr "" +"Você pode tentar [chamar a atenção de %s](../%s) ou [publicar alguma coisa " +"que desperte seu interesse](%%%%action.newnotice%%%%?status_textarea=%s)." #: actions/repliesrss.php:72 -#, fuzzy, php-format +#, php-format msgid "Replies to %1$s on %2$s!" -msgstr "Mensagem para %1$s no %2$s" +msgstr "Respostas para %1$s no %2$s" #: actions/sandbox.php:65 actions/unsandbox.php:65 -#, fuzzy msgid "You cannot sandbox users on this site." -msgstr "Você não pode enviar uma mensagem para esse usuário." +msgstr "Você não pode colocar usuários deste site em isolamento." #: actions/sandbox.php:72 -#, fuzzy msgid "User is already sandboxed." -msgstr "O usuário bloqueou você." +msgstr "O usuário já está em isolamento." #: actions/showfavorites.php:79 -#, fuzzy, php-format +#, php-format msgid "%s's favorite notices, page %d" -msgstr "Mensagens favoritas de %s" +msgstr "Mensagens favoritas de %s, pág. %d" #: actions/showfavorites.php:132 msgid "Could not retrieve favorite notices." msgstr "Não foi possível recuperar as mensagens favoritas." #: actions/showfavorites.php:170 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 1.0)" -msgstr "Feed para favoritas de %s" +msgstr "Fonte para favoritas de %s (RSS 1.0)" #: actions/showfavorites.php:177 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (RSS 2.0)" -msgstr "Feed para favoritas de %s" +msgstr "Fonte para favoritas de %s (RSS 2.0)" #: actions/showfavorites.php:184 -#, fuzzy, php-format +#, php-format msgid "Feed for favorites of %s (Atom)" -msgstr "Feed para favoritas de %s" +msgstr "Fonte para favoritas de %s (Atom)" #: actions/showfavorites.php:205 msgid "" "You haven't chosen any favorite notices yet. Click the fave button on " "notices you like to bookmark them for later or shed a spotlight on them." msgstr "" +"Você ainda não marcou nenhuma mensagem como favorita. Clique no botão " +"\"Favorita\" nas mensagens que você quer guardar para referência futura ou " +"para destacar." #: actions/showfavorites.php:207 #, php-format @@ -3097,6 +3069,8 @@ msgid "" "%s hasn't added any notices to his favorites yet. Post something interesting " "they would add to their favorites :)" msgstr "" +"%s não adicionou nenhuma mensagem às suas favoritas. Publique alguma coisa " +"interessante para para as pessoas marcarem como favorita. :)" #: actions/showfavorites.php:211 #, php-format @@ -3105,90 +3079,87 @@ msgid "" "account](%%%%action.register%%%%) and then post something interesting they " "would add to their favorites :)" msgstr "" +"%s não adicionou nenhuma mensagem às suas favoritas. Por que você não " +"[registra uma conta](%%%%action.register%%%%) e publica alguma coisa " +"interessante para as pessoas marcarem como favorita? :)" #: actions/showfavorites.php:242 msgid "This is a way to share what you like." -msgstr "" +msgstr "Esta é uma forma de compartilhar o que você gosta." #: actions/showgroup.php:82 lib/groupnav.php:86 #, php-format msgid "%s group" -msgstr "" +msgstr "Grupo %s" #: actions/showgroup.php:84 #, php-format msgid "%s group, page %d" -msgstr "" +msgstr "Grupo %s, pág. %d" #: actions/showgroup.php:218 -#, fuzzy msgid "Group profile" -msgstr "Esse perfil não existe." +msgstr "Perfil do grupo" #: actions/showgroup.php:263 actions/tagother.php:118 #: actions/userauthorization.php:167 lib/userprofile.php:177 msgid "URL" -msgstr "" +msgstr "Site" #: actions/showgroup.php:274 actions/tagother.php:128 #: actions/userauthorization.php:179 lib/userprofile.php:194 -#, fuzzy msgid "Note" -msgstr "Mensagens" +msgstr "Mensagem" #: actions/showgroup.php:284 lib/groupeditform.php:184 msgid "Aliases" -msgstr "" +msgstr "Apelidos" #: actions/showgroup.php:293 -#, fuzzy msgid "Group actions" -msgstr "Outras opções" +msgstr "Ações do grupo" #: actions/showgroup.php:328 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group (RSS 1.0)" -msgstr "Mensagens de %s" +msgstr "Fonte de mensagens do grupo %s (RSS 1.0)" #: actions/showgroup.php:334 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group (RSS 2.0)" -msgstr "Mensagens de %s" +msgstr "Fonte de mensagens do grupo %s (RSS 2.0)" #: actions/showgroup.php:340 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s group (Atom)" -msgstr "Mensagens de %s" +msgstr "Fonte de mensagens do grupo %s (Atom)" #: actions/showgroup.php:345 -#, fuzzy, php-format +#, php-format msgid "FOAF for %s group" -msgstr "Mensagens de %s" +msgstr "FOAF para o grupo %s" #: actions/showgroup.php:381 actions/showgroup.php:438 lib/groupnav.php:91 -#, fuzzy msgid "Members" -msgstr "Membro desde" +msgstr "Membros" #: actions/showgroup.php:386 lib/profileaction.php:117 #: lib/profileaction.php:148 lib/profileaction.php:236 lib/section.php:95 #: lib/tagcloudsection.php:71 -#, fuzzy msgid "(None)" -msgstr "(nenhum)" +msgstr "(Nenhum)" #: actions/showgroup.php:392 msgid "All members" -msgstr "" +msgstr "Todos os membros" #: actions/showgroup.php:429 lib/profileaction.php:174 msgid "Statistics" msgstr "Estatísticas" #: actions/showgroup.php:432 -#, fuzzy msgid "Created" -msgstr "Criar" +msgstr "Criado" #: actions/showgroup.php:448 #, php-format @@ -3199,22 +3170,29 @@ msgid "" "their life and interests. [Join now](%%%%action.register%%%%) to become part " "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** é usuário de um grupo no %%%%site.name%%%%, um serviço de [microblog]" +"(http://pt.wikipedia.org/wiki/Micro-blogging) baseado no software livre " +"[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " +"sobre suas vidas e interesses. [Associe-se agora](%%%%action.register%%%%) " +"para se tornar parte deste grupo e muito mais! ([Saiba mais](%%%%doc.help%%%" +"%))" #: actions/showgroup.php:454 -#, fuzzy, php-format +#, php-format msgid "" "**%s** is a user group on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. Its members share short messages about " "their life and interests. " msgstr "" -"Este é %%site.name%%, um serviço de [micro-blogging](http://pt.wikipedia.org/" -"wiki/Microblogging)" +"**%s** é usuário de um grupo no %%%%site.name%%%%, um serviço de [microblog]" +"(http://pt.wikipedia.org/wiki/Micro-blogging) baseado no software livre " +"[StatusNet](http://status.net/). Seus membros compartilham mensagens curtas " +"sobre suas vidas e interesses. " #: actions/showgroup.php:482 -#, fuzzy msgid "Admins" -msgstr "Admin" +msgstr "Administradores" #: actions/showmessage.php:81 msgid "No such message." @@ -3222,7 +3200,7 @@ msgstr "Essa mensagem não existe." #: actions/showmessage.php:98 msgid "Only the sender and recipient may read this message." -msgstr "Apenas o remetente e o destinatário podem ler essa mensagem." +msgstr "Apenas o remetente e o destinatário podem ler esta mensagem." #: actions/showmessage.php:108 #, php-format @@ -3235,55 +3213,57 @@ msgid "Message from %1$s on %2$s" msgstr "Mensagem de %1$s no %2$s" #: actions/shownotice.php:90 -#, fuzzy msgid "Notice deleted." -msgstr "Mensagem publicada" +msgstr "A mensagem excluída." #: actions/showstream.php:73 -#, fuzzy, php-format +#, php-format msgid " tagged %s" -msgstr "Mensagens etiquetadas com %s" +msgstr " etiquetada %s" #: actions/showstream.php:79 -#, fuzzy, php-format +#, php-format msgid "%s, page %d" -msgstr "Recebidas por %s - pág. %d" +msgstr "%s, pág. %d" #: actions/showstream.php:122 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s tagged %s (RSS 1.0)" -msgstr "Mensagens de %s" +msgstr "Fonte de mensagens de %s etiquetada %s (RSS 1.0)" #: actions/showstream.php:129 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (RSS 1.0)" -msgstr "Feed de mensagens de %s" +msgstr "Fonte de mensagens de %s (RSS 1.0)" #: actions/showstream.php:136 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (RSS 2.0)" -msgstr "Feed de mensagens de %s" +msgstr "Fonte de mensagens de %s (RSS 2.0)" #: actions/showstream.php:143 -#, fuzzy, php-format +#, php-format msgid "Notice feed for %s (Atom)" -msgstr "Feed de mensagens de %s" +msgstr "Fonte de mensagens de %s (Atom)" #: actions/showstream.php:148 -#, fuzzy, php-format +#, php-format msgid "FOAF for %s" -msgstr "Envidas para %s" +msgstr "FOAF de %s" #: actions/showstream.php:191 #, php-format msgid "This is the timeline for %s but %s hasn't posted anything yet." msgstr "" +"Este é o fluxo público de mensagens de %s, mas %s não publicou nada ainda." #: actions/showstream.php:196 msgid "" "Seen anything interesting recently? You haven't posted any notices yet, now " "would be a good time to start :)" msgstr "" +"Viu alguma coisa interessante recentemente? Você ainda não publicou nenhuma " +"mensagem. Que tal começar agora? :)" #: actions/showstream.php:198 #, php-format @@ -3291,6 +3271,8 @@ msgid "" "You can try to nudge %s or [post something to his or her attention](%%%%" "action.newnotice%%%%?status_textarea=%s)." msgstr "" +"Você pode tentar chamar a atenção de %s ou [publicar alguma coisa que " +"desperte seu interesse](%%%%action.newnotice%%%%?status_textarea=%s)." #: actions/showstream.php:234 #, php-format @@ -3300,235 +3282,230 @@ msgid "" "[StatusNet](http://status.net/) tool. [Join now](%%%%action.register%%%%) to " "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" +"**%s** tem uma conta no %%%%site.name%%%%, um serviço de [microblog](http://" +"pt.wikipedia.org/wiki/Micro-blogging) baseado no software livre [StatusNet]" +"(http://status.net/). [Cadastre-se agora](%%%%action.register%%%%) para " +"acompanhar as mensagens de **%s** e muito mais! ([Saiba mais](%%%%doc.help%%%" +"%))" #: actions/showstream.php:239 -#, fuzzy, php-format +#, php-format msgid "" "**%s** has an account on %%%%site.name%%%%, a [micro-blogging](http://en." "wikipedia.org/wiki/Micro-blogging) service based on the Free Software " "[StatusNet](http://status.net/) tool. " msgstr "" -"Este é %%site.name%%, um serviço de [micro-blogging](http://pt.wikipedia.org/" -"wiki/Microblogging)" +"**%s** tem uma conta no %%%%site.name%%%%, um serviço de [microblog](http://" +"pt.wikipedia.org/wiki/Micro-blogging) baseado no software livre [StatusNet]" +"(http://status.net/). " #: actions/showstream.php:313 -#, fuzzy, php-format +#, php-format msgid "Repeat of %s" -msgstr "Respostas para %s" +msgstr "Repetição de %s" #: actions/silence.php:65 actions/unsilence.php:65 -#, fuzzy msgid "You cannot silence users on this site." -msgstr "Você não pode enviar uma mensagem para esse usuário." +msgstr "Você não pode silenciar os usuários neste site." #: actions/silence.php:72 -#, fuzzy msgid "User is already silenced." -msgstr "O usuário bloqueou você." +msgstr "O usuário já está silenciado." #: actions/siteadminpanel.php:69 msgid "Basic settings for this StatusNet site." -msgstr "" +msgstr "Configurações básicas para esta instância do StatusNet." #: actions/siteadminpanel.php:146 msgid "Site name must have non-zero length." -msgstr "" +msgstr "Você deve digitar alguma coisa para o nome do site." #: actions/siteadminpanel.php:154 -#, fuzzy msgid "You must have a valid contact email address" -msgstr "Não é um endereço de e-mail válido" +msgstr "Você deve ter um endereço de e-mail para contato válido." #: actions/siteadminpanel.php:172 #, php-format msgid "Unknown language \"%s\"" -msgstr "" +msgstr "Idioma desconhecido \"%s\"" #: actions/siteadminpanel.php:179 msgid "Invalid snapshot report URL." -msgstr "" +msgstr "A URL para o envio das estatísticas é inválida." #: actions/siteadminpanel.php:185 msgid "Invalid snapshot run value." -msgstr "" +msgstr "O valor de execução da obtenção das estatísticas é inválido." #: actions/siteadminpanel.php:191 msgid "Snapshot frequency must be a number." -msgstr "" +msgstr "A frequência de geração de estatísticas deve ser um número." #: actions/siteadminpanel.php:197 msgid "Minimum text limit is 140 characters." -msgstr "" +msgstr "O comprimento máximo do texto é de 140 caracteres." #: actions/siteadminpanel.php:203 msgid "Dupe limit must 1 or more seconds." -msgstr "" +msgstr "O limite de duplicatas deve ser de um ou mais segundos." #: actions/siteadminpanel.php:253 msgid "General" -msgstr "" +msgstr "Geral" #: actions/siteadminpanel.php:256 -#, fuzzy msgid "Site name" -msgstr "Nova mensagem" +msgstr "Nome do site" #: actions/siteadminpanel.php:257 msgid "The name of your site, like \"Yourcompany Microblog\"" -msgstr "" +msgstr "O nome do seu site, por exemplo \"Microblog da Sua Empresa\"" #: actions/siteadminpanel.php:261 msgid "Brought by" -msgstr "" +msgstr "Disponibilizado por" #: actions/siteadminpanel.php:262 msgid "Text used for credits link in footer of each page" -msgstr "" +msgstr "Texto utilizado para o link de créditos no rodapé de cada página" #: actions/siteadminpanel.php:266 msgid "Brought by URL" -msgstr "" +msgstr "URL do disponibilizado por" #: actions/siteadminpanel.php:267 msgid "URL used for credits link in footer of each page" -msgstr "" +msgstr "URL utilizada para o link de créditos no rodapé de cada página" #: actions/siteadminpanel.php:271 -#, fuzzy msgid "Contact email address for your site" -msgstr "Novo endereço de e-mail para postar para %s" +msgstr "Endereço de e-mail para contatos do seu site" #: actions/siteadminpanel.php:277 -#, fuzzy msgid "Local" -msgstr "Localização" +msgstr "Local" #: actions/siteadminpanel.php:288 msgid "Default timezone" -msgstr "" +msgstr "Fuso horário padrão" #: actions/siteadminpanel.php:289 msgid "Default timezone for the site; usually UTC." -msgstr "" +msgstr "Fuso horário padrão para o seu site; geralmente UTC." #: actions/siteadminpanel.php:295 -#, fuzzy msgid "Default site language" -msgstr "Idioma preferencial" +msgstr "Idioma padrão do site" #: actions/siteadminpanel.php:303 msgid "URLs" -msgstr "" +msgstr "URLs" #: actions/siteadminpanel.php:306 -#, fuzzy msgid "Server" -msgstr "Recuperar" +msgstr "Servidor" #: actions/siteadminpanel.php:306 msgid "Site's server hostname." -msgstr "" +msgstr "Nome de host do servidor do site." #: actions/siteadminpanel.php:310 msgid "Fancy URLs" -msgstr "" +msgstr "URLs limpas" #: actions/siteadminpanel.php:312 msgid "Use fancy (more readable and memorable) URLs?" -msgstr "" +msgstr "Utilizar URLs limpas (mais legíveis e memorizáveis)?" #: actions/siteadminpanel.php:318 -#, fuzzy msgid "Access" -msgstr "Aceitar" +msgstr "Acesso" #: actions/siteadminpanel.php:321 -#, fuzzy msgid "Private" -msgstr "Privacidade" +msgstr "Particular" #: actions/siteadminpanel.php:323 msgid "Prohibit anonymous users (not logged in) from viewing site?" -msgstr "" +msgstr "Impedir usuários anônimos (não autenticados) de visualizar o site?" #: actions/siteadminpanel.php:327 -#, fuzzy msgid "Invite only" -msgstr "Convidar" +msgstr "Somente convidados" #: actions/siteadminpanel.php:329 msgid "Make registration invitation only." -msgstr "" +msgstr "Cadastro liberado somente para convidados." #: actions/siteadminpanel.php:333 -#, fuzzy msgid "Closed" -msgstr "Bloquear" +msgstr "Fechado" #: actions/siteadminpanel.php:335 msgid "Disable new registrations." -msgstr "" +msgstr "Desabilita novos registros." #: actions/siteadminpanel.php:341 msgid "Snapshots" -msgstr "" +msgstr "Estatísticas" #: actions/siteadminpanel.php:344 msgid "Randomly during Web hit" -msgstr "" +msgstr "Aleatoriamente durante o funcionamento" #: actions/siteadminpanel.php:345 msgid "In a scheduled job" -msgstr "" +msgstr "Em horários pré-definidos" #: actions/siteadminpanel.php:347 msgid "Data snapshots" -msgstr "" +msgstr "Estatísticas dos dados" #: actions/siteadminpanel.php:348 msgid "When to send statistical data to status.net servers" -msgstr "" +msgstr "Quando enviar dados estatísticos para os servidores status.net" #: actions/siteadminpanel.php:353 msgid "Frequency" -msgstr "" +msgstr "Frequentemente" #: actions/siteadminpanel.php:354 msgid "Snapshots will be sent once every N web hits" -msgstr "" +msgstr "As estatísticas serão enviadas uma vez a cada N usos da web" #: actions/siteadminpanel.php:359 msgid "Report URL" -msgstr "" +msgstr "URL para envio" #: actions/siteadminpanel.php:360 msgid "Snapshots will be sent to this URL" -msgstr "" +msgstr "As estatísticas serão enviadas para esta URL" #: actions/siteadminpanel.php:367 msgid "Limits" -msgstr "" +msgstr "Limites" #: actions/siteadminpanel.php:370 msgid "Text limit" -msgstr "" +msgstr "Limite do texto" #: actions/siteadminpanel.php:370 msgid "Maximum number of characters for notices." -msgstr "" +msgstr "Número máximo de caracteres para as mensagens." #: actions/siteadminpanel.php:374 msgid "Dupe limit" -msgstr "" +msgstr "Limite de duplicatas" #: actions/siteadminpanel.php:374 msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" +"Quanto tempo (em segundos) os usuários devem esperar para publicar a mesma " +"coisa novamente." #: actions/siteadminpanel.php:388 actions/useradminpanel.php:313 -#, fuzzy msgid "Save site settings" -msgstr "Configurações do avatar" +msgstr "Salvar as configurações do site" #: actions/smssettings.php:58 msgid "SMS Settings" @@ -3537,12 +3514,11 @@ msgstr "Configuração de SMS" #: actions/smssettings.php:69 #, php-format msgid "You can receive SMS messages through email from %%site.name%%." -msgstr "Você pode receber mensagens SMS do %%site.name%% através do e-mail." +msgstr "Você pode receber mensagens SMS de %%site.name%% através do e-mail." #: actions/smssettings.php:91 -#, fuzzy msgid "SMS is not available." -msgstr "Esta página não está disponível em um " +msgstr "SMS não está disponível." #: actions/smssettings.php:112 msgid "Current confirmed SMS-enabled phone number." @@ -3593,14 +3569,12 @@ msgid "That phone number already belongs to another user." msgstr "Esse número de telefone já pertence à outro usuário." #: actions/smssettings.php:347 -#, fuzzy msgid "" "A confirmation code was sent to the phone number you added. Check your phone " "for the code and instructions on how to use it." msgstr "" "Um código de confirmação foi enviado para o número de telefone que você " -"informou. Verifique sua caixa de entrada (e de spam!) para o código e " -"instruções sobre como usá-lo." +"informou. Verifique no seu telefone o código e instruções sobre como usá-lo." #: actions/smssettings.php:374 msgid "That is the wrong confirmation number." @@ -3611,9 +3585,8 @@ msgid "That is not your phone number." msgstr "Esse não é seu número de telefone." #: actions/smssettings.php:465 -#, fuzzy msgid "Mobile carrier" -msgstr "Selecione uma operadora" +msgstr "Operadora de celular" #: actions/smssettings.php:469 msgid "Select a carrier" @@ -3625,9 +3598,8 @@ msgid "" "Mobile carrier for your phone. If you know a carrier that accepts SMS over " "email but isn't listed here, send email to let us know at %s." msgstr "" -"A operadora móvel do seu celular. Se você conhece uma operadora que aceita " -"SMS via e-mail que não está listada aqui, informe-nos enviando uma mensagem " -"para %s." +"A operadora do seu celular. Se você conhece uma operadora que aceita SMS via " +"e-mail que não está listada aqui, informe-nos enviando uma mensagem para %s." #: actions/smssettings.php:498 msgid "No code entered" @@ -3650,14 +3622,14 @@ msgid "Subscribed" msgstr "Assinado" #: actions/subscribers.php:50 -#, fuzzy, php-format +#, php-format msgid "%s subscribers" -msgstr "Assinantes" +msgstr "Assinantes de %s" #: actions/subscribers.php:52 #, php-format msgid "%s subscribers, page %d" -msgstr "" +msgstr "Assinantes de %s, pág. %d" #: actions/subscribers.php:63 msgid "These are the people who listen to your notices." @@ -3673,11 +3645,13 @@ msgid "" "You have no subscribers. Try subscribing to people you know and they might " "return the favor" msgstr "" +"Você não tem nenhum assinante. Experimente assinar pessoas que você conhece " +"e eles podem devolver o favor" #: actions/subscribers.php:110 #, php-format msgid "%s has no subscribers. Want to be the first?" -msgstr "" +msgstr "%s não possui nenhum assinante. Quer ser o(a) primeiro(a)?" #: actions/subscribers.php:114 #, php-format @@ -3685,16 +3659,18 @@ msgid "" "%s has no subscribers. Why not [register an account](%%%%action.register%%%" "%) and be the first?" msgstr "" +"%s não possui nenhum assinante. Por que você não [registra uma conta](%%%%" +"action.register%%%%) e se torna o(a) primeiro(a)?" #: actions/subscriptions.php:52 #, php-format msgid "%s subscriptions" -msgstr "%s assinaturas" +msgstr "Assinaturas de %s" #: actions/subscriptions.php:54 #, php-format msgid "%s subscriptions, page %d" -msgstr "%s assinaturas, página %d" +msgstr "Assinaturas de %s, pág. %d" #: actions/subscriptions.php:65 msgid "These are the people whose notices you listen to." @@ -3714,11 +3690,17 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" +"Você não está acompanhando as mensagens de ninguém. Experimente assinar " +"algumas pessoas que você conhece. Você pode [procurar por pessoas](%%action." +"peoplesearch%%) e verificar os membros nos grupos que você está interessado " +"e nossos [usuários de destaque](%%action.featured%%). Se você for um " +"[usuário do Twitter](%%action.twittersettings%%), você pode assinar " +"automaticamente as pessoas que já segue lá." #: actions/subscriptions.php:123 actions/subscriptions.php:127 -#, fuzzy, php-format +#, php-format msgid "%s is not listening to anyone." -msgstr "%1$s agora está acompanhando " +msgstr "%s não está acompanhando ninguém." #: actions/subscriptions.php:194 msgid "Jabber" @@ -3729,56 +3711,53 @@ msgid "SMS" msgstr "SMS" #: actions/tag.php:68 -#, fuzzy, php-format +#, php-format msgid "Notices tagged with %s, page %d" -msgstr "Mensagens etiquetadas com %s" +msgstr "Mensagens etiquetadas com %s, pág. %d" #: actions/tag.php:86 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 1.0)" -msgstr "Feed de mensagens de %s" +msgstr "Fonte de mensagens de %s (RSS 1.0)" #: actions/tag.php:92 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (RSS 2.0)" -msgstr "Feed de mensagens de %s" +msgstr "Fonte de mensagens de %s (RSS 2.0)" #: actions/tag.php:98 -#, fuzzy, php-format +#, php-format msgid "Notice feed for tag %s (Atom)" -msgstr "Feed de mensagens de %s" +msgstr "Fonte de mensagens de %s (Atom)" #: actions/tagother.php:39 -#, fuzzy msgid "No ID argument." msgstr "Nenhum argumento de ID." #: actions/tagother.php:65 #, php-format msgid "Tag %s" -msgstr "Tag %s" +msgstr "Etiqueta %s" #: actions/tagother.php:77 lib/userprofile.php:75 -#, fuzzy msgid "User profile" -msgstr "O usuário não tem perfil." +msgstr "Perfil do usuário" #: actions/tagother.php:81 lib/userprofile.php:102 msgid "Photo" -msgstr "" +msgstr "Imagem" #: actions/tagother.php:141 -#, fuzzy msgid "Tag user" -msgstr "Etiquetas" +msgstr "Etiquetar o usuário" #: actions/tagother.php:151 msgid "" "Tags for this user (letters, numbers, -, ., and _), comma- or space- " "separated" msgstr "" -"Etiquetas desse usuário (letras, números, -, ., e _), separadas por vírgulas " -"ou espaços" +"Etiquetas para este usuário (letras, números, -, ., e _), separadas por " +"vírgulas ou espaços" #: actions/tagother.php:193 msgid "" @@ -3797,26 +3776,23 @@ msgstr "" #: actions/tagrss.php:35 msgid "No such tag." -msgstr "Essa etiqueta não existe." +msgstr "Esta etiqueta não existe." #: actions/twitapitrends.php:87 msgid "API method under construction." msgstr "O método da API está em construção." #: actions/unblock.php:59 -#, fuzzy msgid "You haven't blocked that user." -msgstr "Você já bloqueou esse usuário." +msgstr "Você não bloqueou esse usuário." #: actions/unsandbox.php:72 -#, fuzzy msgid "User is not sandboxed." -msgstr "O usuário bloqueou você." +msgstr "O usuário não está em isolamento." #: actions/unsilence.php:72 -#, fuzzy msgid "User is not silenced." -msgstr "O usuário não tem perfil." +msgstr "O usuário não está silenciado." #: actions/unsubscribe.php:77 msgid "No profile id in request." @@ -3834,6 +3810,8 @@ msgstr "Cancelado" #, php-format msgid "Listenee stream license ‘%s’ is not compatible with site license ‘%s’." msgstr "" +"A licença '%s' do fluxo do usuário não é compatível com a licença '%s' do " +"site." #: actions/useradminpanel.php:58 lib/adminpanelaction.php:305 #: lib/personalgroupnav.php:115 @@ -3842,20 +3820,21 @@ msgstr "Usuário" #: actions/useradminpanel.php:69 msgid "User settings for this StatusNet site." -msgstr "" +msgstr "Configurações de usuário para este site StatusNet." #: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "Limite da descrição inválido. Seu valor deve ser numérico." #: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." msgstr "" +"Mensagem de boas vindas inválida. O comprimento máximo é de 255 caracteres." #: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +msgstr "Assinatura padrão inválida: '%1$s' não é um usuário." #: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 @@ -3864,87 +3843,81 @@ msgstr "Perfil" #: actions/useradminpanel.php:222 msgid "Bio Limit" -msgstr "" +msgstr "Limite da descrição" #: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "Comprimento máximo da descrição do perfil, em caracteres." #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "Convidar novos usuários" +msgstr "Novos usuários" #: actions/useradminpanel.php:235 msgid "New user welcome" -msgstr "" +msgstr "Boas vindas aos novos usuários" #: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgstr "Texto de boas vindas para os novos usuários (máx. 255 caracteres)." #: actions/useradminpanel.php:241 -#, fuzzy msgid "Default subscription" -msgstr "Todas as assinaturas" +msgstr "Assinatura padrão" #: actions/useradminpanel.php:242 -#, fuzzy msgid "Automatically subscribe new users to this user." -msgstr "Assinar automaticamente à quem me assinar" +msgstr "Os novos usuários assinam esse usuário automaticamente." #: actions/useradminpanel.php:251 -#, fuzzy msgid "Invitations" -msgstr "Convite(s) enviado(s)" +msgstr "Convites" #: actions/useradminpanel.php:256 -#, fuzzy msgid "Invitations enabled" -msgstr "Convite(s) enviado(s)" +msgstr "Convites habilitados" #: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." -msgstr "" +msgstr "Define se os usuários podem ou não convidar novos usuários." #: actions/useradminpanel.php:265 msgid "Sessions" -msgstr "" +msgstr "Sessões" #: actions/useradminpanel.php:270 msgid "Handle sessions" -msgstr "" +msgstr "Gerenciar sessões" #: actions/useradminpanel.php:272 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "Define se nós cuidamos do gerenciamento das sessões." #: actions/useradminpanel.php:276 msgid "Session debugging" -msgstr "" +msgstr "Depuração da sessão" #: actions/useradminpanel.php:278 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "Ativa a saída de depuração para as sessões." #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "Autorizar a assinatura" #: actions/userauthorization.php:110 -#, fuzzy msgid "" "Please check these details to make sure that you want to subscribe to this " "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" -"Por favor, verifique estes detalhes para ter certeza que você quer seguir as " -"mensagens deste usuário. Se você não solicitou seguir as mensagens de " -"alguém, clique em \"Cancelar\"." +"Por favor, verifique estes detalhes para ter certeza que você quer assinar " +"as mensagens deste usuário. Se você não solicitou assinar as mensagens de " +"alguém, clique em \"Recusar\"." #: actions/userauthorization.php:188 msgid "License" -msgstr "" +msgstr "Licença" #: actions/userauthorization.php:209 msgid "Accept" @@ -3960,9 +3933,8 @@ msgid "Reject" msgstr "Recusar" #: actions/userauthorization.php:212 -#, fuzzy msgid "Reject this subscription" -msgstr "%s assinaturas" +msgstr "Recusar esta assinatura" #: actions/userauthorization.php:225 msgid "No authorization request!" @@ -3973,7 +3945,6 @@ msgid "Subscription authorized" msgstr "A assinatura foi autorizada" #: actions/userauthorization.php:249 -#, fuzzy msgid "" "The subscription has been authorized, but no callback URL was passed. Check " "with the site’s instructions for details on how to authorize the " @@ -3988,90 +3959,90 @@ msgid "Subscription rejected" msgstr "A assinatura foi recusada" #: actions/userauthorization.php:261 -#, fuzzy msgid "" "The subscription has been rejected, but no callback URL was passed. Check " "with the site’s instructions for details on how to fully reject the " "subscription." msgstr "" "A assinatura foi rejeitada, mas não foi informada nenhuma URL de retorno. " -"Verifique as instruções do site para maiores detalhes em como rejeitar " +"Verifique as instruções do site para detalhes sobre como rejeitar " "completamente a assinatura." #: actions/userauthorization.php:296 #, php-format msgid "Listener URI ‘%s’ not found here" -msgstr "" +msgstr "A URI ‘%s’ do usuário não foi encontrada aqui" #: actions/userauthorization.php:301 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "A URI ‘%s’ do usuário é muito extensa." #: actions/userauthorization.php:307 #, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "A URI ‘%s’ é de um usuário local." #: actions/userauthorization.php:322 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "A URL ‘%s’ do perfil é de um usuário local." #: actions/userauthorization.php:338 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "A URL ‘%s’ do avatar não é válida." #: actions/userauthorization.php:343 -#, fuzzy, php-format +#, php-format msgid "Can’t read avatar URL ‘%s’." -msgstr "Não é possível ler a URL '%s' do avatar" +msgstr "Não é possível ler a URL '%s' do avatar." #: actions/userauthorization.php:348 -#, fuzzy, php-format +#, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "Tipo de imagem errado para '%s'" +msgstr "Tipo de imagem errado para a URL '%s' do avatar." #: actions/userbyid.php:70 -#, fuzzy msgid "No ID." msgstr "Nenhuma ID." #: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy msgid "Profile design" -msgstr "Configurações do perfil" +msgstr "Aparência do perfil" #: actions/userdesignsettings.php:87 lib/designsettings.php:76 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"Personalize a aparência do seu perfil, com uma imagem de fundo e uma paleta " +"de cores da sua preferência." #: actions/userdesignsettings.php:282 msgid "Enjoy your hotdog!" -msgstr "" +msgstr "Aproveite o seu cachorro-quente!" #: actions/usergroups.php:64 #, php-format msgid "%s groups, page %d" -msgstr "Grupos de %s, página %d" +msgstr "Grupos de %s, pág. %d" #: actions/usergroups.php:130 -#, fuzzy msgid "Search for more groups" -msgstr "Pesquisar por pessoa ou texto" +msgstr "Procurar por outros grupos" #: actions/usergroups.php:153 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "Você não está assinando esse perfil." +msgstr "%s não é membro de nenhum grupo." #: actions/usergroups.php:158 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." msgstr "" +"Experimente [procurar por grupos](%%action.groupsearch%%) e associar-se à " +"eles." #: classes/File.php:137 #, php-format @@ -4079,21 +4050,22 @@ msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " "to upload a smaller version." msgstr "" +"Nenhum arquivo pode ser maior que %d bytes e o arquivo que você enviou " +"possui %d bytes. Experimente enviar uma versão menor." #: classes/File.php:147 #, php-format msgid "A file this large would exceed your user quota of %d bytes." -msgstr "" +msgstr "Um arquivo deste tamanho excederá a sua conta de %d bytes." #: classes/File.php:154 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." -msgstr "" +msgstr "Um arquivo deste tamanho excederá a sua conta mensal de %d bytes." #: classes/Message.php:45 -#, fuzzy msgid "You are banned from sending direct messages." -msgstr "Ocorreu um erro durante o envio da mensagem direta." +msgstr "Você está proibido de enviar mensagens diretas." #: classes/Message.php:61 msgid "Could not insert message." @@ -4106,12 +4078,11 @@ msgstr "Não foi possível atualizar a mensagem com a nova URI." #: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" -msgstr "Erro no banco de dados durante a inserção de hashtag: %s" +msgstr "Erro no banco de dados durante a inserção da hashtag: %s" #: classes/Notice.php:226 -#, fuzzy msgid "Problem saving notice. Too long." -msgstr "Problema ao salvar a mensagem." +msgstr "Problema no salvamento da mensagem. Ela é muito extensa." #: classes/Notice.php:230 msgid "Problem saving notice. Unknown user." @@ -4125,21 +4096,20 @@ msgstr "" "novamente daqui a alguns minutos." #: classes/Notice.php:241 -#, fuzzy msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" -"Muitas mensagens em um período curto de tempo; dê uma respirada e publique " -"novamente daqui a alguns minutos." +"Muitas mensagens duplicadas em um período curto de tempo; dê uma respirada e " +"publique novamente daqui a alguns minutos." #: classes/Notice.php:247 msgid "You are banned from posting notices on this site." -msgstr "Você foi banido de publicar mensagens nesse site." +msgstr "Você está proibido de publicar mensagens neste site." #: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." -msgstr "Problema ao salvar a mensagem." +msgstr "Problema no salvamento da mensagem." #: classes/Notice.php:1034 #, php-format @@ -4147,23 +4117,22 @@ msgid "DB error inserting reply: %s" msgstr "Erro no banco de dados na inserção da reposta: %s" #: classes/Notice.php:1361 -#, fuzzy, php-format +#, php-format msgid "RT @%1$s %2$s" -msgstr "%1$s (%2$s)" +msgstr "RT @%1$s %2$s" #: classes/User.php:368 -#, fuzzy, php-format +#, php-format msgid "Welcome to %1$s, @%2$s!" -msgstr "Mensagem para %1$s no %2$s" +msgstr "Bem vindo(a) a %1$s, @%2$s!" #: classes/User_group.php:380 msgid "Could not create group." msgstr "Não foi possível criar o grupo." #: classes/User_group.php:409 -#, fuzzy msgid "Could not set group membership." -msgstr "Não foi possível salvar a assinatura." +msgstr "Não foi possível configurar a associação ao grupo." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4175,16 +4144,15 @@ msgstr "Enviar um avatar" #: lib/accountsettingsaction.php:116 msgid "Change your password" -msgstr "Altere a sua senha" +msgstr "Alterar a sua senha" #: lib/accountsettingsaction.php:120 msgid "Change email handling" msgstr "Configurações de uso do e-mail" #: lib/accountsettingsaction.php:124 -#, fuzzy msgid "Design your profile" -msgstr "O usuário não tem perfil." +msgstr "Mude a aparência do seu perfil" #: lib/accountsettingsaction.php:128 msgid "Other" @@ -4213,7 +4181,7 @@ msgstr "Início" #: lib/action.php:432 msgid "Personal profile and friends timeline" -msgstr "Perfil pessoal e mensagens dos amigos" +msgstr "Perfil pessoal e fluxo de mensagens dos amigos" #: lib/action.php:434 msgid "Account" @@ -4221,21 +4189,19 @@ msgstr "Conta" #: lib/action.php:434 msgid "Change your email, avatar, password, profile" -msgstr "Alterar email, avatar, senha, perfil" +msgstr "Mude seu e-mail, avatar, senha, perfil" #: lib/action.php:437 msgid "Connect" msgstr "Conectar" #: lib/action.php:437 -#, fuzzy msgid "Connect to services" -msgstr "Não foi possível redirecionar para o servidor: %s" +msgstr "Conecte-se a outros serviços" #: lib/action.php:441 -#, fuzzy msgid "Change site configuration" -msgstr "Navegação primária no site" +msgstr "Mude as configurações do site" #: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" @@ -4252,15 +4218,15 @@ msgstr "Sair" #: lib/action.php:451 msgid "Logout from the site" -msgstr "Sair deste site" +msgstr "Sai do site" #: lib/action.php:456 msgid "Create an account" -msgstr "Criar uma nova conta" +msgstr "Cria uma conta" #: lib/action.php:459 msgid "Login to the site" -msgstr "Entrar" +msgstr "Autentique-se no site" #: lib/action.php:462 lib/action.php:725 msgid "Help" @@ -4268,7 +4234,7 @@ msgstr "Ajuda" #: lib/action.php:462 msgid "Help me!" -msgstr "Ajuda" +msgstr "Ajudem-me!" #: lib/action.php:465 lib/searchaction.php:127 msgid "Search" @@ -4276,26 +4242,23 @@ msgstr "Procurar" #: lib/action.php:465 msgid "Search for people or text" -msgstr "Pesquisar por pessoa ou texto" +msgstr "Procura por pessoas ou textos" #: lib/action.php:486 -#, fuzzy msgid "Site notice" -msgstr "Nova mensagem" +msgstr "Mensagem do site" #: lib/action.php:552 msgid "Local views" -msgstr "" +msgstr "Visualizações locais" #: lib/action.php:618 -#, fuzzy msgid "Page notice" -msgstr "Nova mensagem" +msgstr "Notícia da página" #: lib/action.php:720 -#, fuzzy msgid "Secondary site navigation" -msgstr "Navegação pelas assinaturas" +msgstr "Navegação secundária no site" #: lib/action.php:727 msgid "About" @@ -4307,7 +4270,7 @@ msgstr "FAQ" #: lib/action.php:733 msgid "TOS" -msgstr "" +msgstr "Termos de uso" #: lib/action.php:736 msgid "Privacy" @@ -4322,13 +4285,12 @@ msgid "Contact" msgstr "Contato" #: lib/action.php:742 -#, fuzzy msgid "Badge" -msgstr "Chamar a atenção" +msgstr "Mini-aplicativo" #: lib/action.php:770 msgid "StatusNet software license" -msgstr "" +msgstr "Licença do software StatusNet" #: lib/action.php:773 #, php-format @@ -4336,13 +4298,13 @@ msgid "" "**%%site.name%%** is a microblogging service brought to you by [%%site." "broughtby%%](%%site.broughtbyurl%%). " msgstr "" -"**%%site.name%%** é um serviço de microblogagem disponibilizado por [%%site." +"**%%site.name%%** é um serviço de microblog disponibilizado por [%%site." "broughtby%%](%%site.broughtbyurl%%). " #: lib/action.php:775 #, php-format msgid "**%%site.name%%** is a microblogging service. " -msgstr "**%%site.name%%** é um serviço de microblogagem. " +msgstr "**%%site.name%%** é um serviço de microblog. " #: lib/action.php:777 #, php-format @@ -4351,23 +4313,21 @@ msgid "" "s, available under the [GNU Affero General Public License](http://www.fsf." "org/licensing/licenses/agpl-3.0.html)." msgstr "" -"Ele funciona sob o software de microblogagem [StatusNet](http://status." -"net/), versão %s, disponível sob a [GNU Affero General Public License] " -"(http://www.fsf.org/licensing/licenses/agpl-3.0.html)." +"Ele funciona sobre o software de microblog [StatusNet](http://status.net/), " +"versão %s, disponível sob a [GNU Affero General Public License] (http://www." +"fsf.org/licensing/licenses/agpl-3.0.html)." #: lib/action.php:791 -#, fuzzy msgid "Site content license" -msgstr "Procure no conteúdo das mensagens" +msgstr "Licença do conteúdo do site" #: lib/action.php:800 -#, fuzzy msgid "All " -msgstr "Todas" +msgstr "Todas " #: lib/action.php:805 msgid "license." -msgstr "licença" +msgstr "licença." #: lib/action.php:1099 msgid "Pagination" @@ -4383,64 +4343,55 @@ msgstr "Anterior" #: lib/action.php:1164 msgid "There was a problem with your session token." -msgstr "" -"Ocorreu um problema com o seu token de sessão. Tente novamente, por favor." +msgstr "Ocorreu um problema com o seu token de sessão." #: lib/adminpanelaction.php:96 -#, fuzzy msgid "You cannot make changes to this site." -msgstr "Você não pode enviar uma mensagem para esse usuário." +msgstr "Você não pode fazer alterações neste site." #: lib/adminpanelaction.php:195 -#, fuzzy msgid "showForm() not implemented." -msgstr "O comando não foi implementado ainda." +msgstr "showForm() não implementado." #: lib/adminpanelaction.php:224 -#, fuzzy msgid "saveSettings() not implemented." -msgstr "O comando não foi implementado ainda." +msgstr "saveSettings() não implementado." #: lib/adminpanelaction.php:247 -#, fuzzy msgid "Unable to delete design setting." -msgstr "Não foi possível salvar suas configurações do Twitter!" +msgstr "Não foi possível excluir as configurações da aparência." #: lib/adminpanelaction.php:300 -#, fuzzy msgid "Basic site configuration" -msgstr "Confirmação do endereço de e-mail" +msgstr "Configuração básica do site" #: lib/adminpanelaction.php:303 -#, fuzzy msgid "Design configuration" -msgstr "Confirmação de SMS" +msgstr "Configuração da aparência" #: lib/adminpanelaction.php:306 lib/adminpanelaction.php:309 -#, fuzzy msgid "Paths configuration" -msgstr "Confirmação de SMS" +msgstr "Configuração dos caminhos" #: lib/attachmentlist.php:87 msgid "Attachments" -msgstr "" +msgstr "Anexos" #: lib/attachmentlist.php:265 msgid "Author" -msgstr "" +msgstr "Autor" #: lib/attachmentlist.php:278 -#, fuzzy msgid "Provider" -msgstr "Perfil" +msgstr "Operadora" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "Mensagens onde este anexo aparece" #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "" +msgstr "Etiquetas para este anexo" #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" @@ -4459,19 +4410,18 @@ msgid "Sorry, this command is not yet implemented." msgstr "Desculpe, mas esse comando ainda não foi implementado." #: lib/command.php:88 -#, fuzzy, php-format +#, php-format msgid "Could not find a user with nickname %s" -msgstr "" -"Não foi possível atualizar o usuário com o endereço de e-mail confirmado." +msgstr "Não foi possível encontrar um usuário com a identificação %s" #: lib/command.php:92 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "Não faz muito sentido chamar a sua própria atenção!" #: lib/command.php:99 -#, fuzzy, php-format +#, php-format msgid "Nudge sent to %s" -msgstr "Chamada de atenção enviada" +msgstr "Foi enviada a chamada de atenção para %s" #: lib/command.php:126 #, php-format @@ -4480,10 +4430,13 @@ msgid "" "Subscribers: %2$s\n" "Notices: %3$s" msgstr "" +"Assinaturas: %1$s\n" +"Assinantes: %2$s\n" +"Mensagens: %3$s" #: lib/command.php:152 lib/command.php:399 lib/command.php:460 msgid "Notice with that id does not exist" -msgstr "" +msgstr "Não existe uma mensagem com essa id" #: lib/command.php:168 lib/command.php:415 lib/command.php:476 #: lib/command.php:532 @@ -4520,50 +4473,46 @@ msgid "About: %s" msgstr "Sobre: %s" #: lib/command.php:358 scripts/xmppdaemon.php:301 -#, fuzzy, php-format +#, php-format msgid "Message too long - maximum is %d characters, you sent %d" msgstr "" -"A mensagem é muito extensa - o máximo são 140 caracteres e você enviou %d" +"A mensagem é muito extensa - o máximo são %d caracteres e você enviou %d" #: lib/command.php:378 msgid "Error sending direct message." msgstr "Ocorreu um erro durante o envio da mensagem direta." #: lib/command.php:422 -#, fuzzy msgid "Cannot repeat your own notice" -msgstr "Não é possível ligar a notificação." +msgstr "Você não pode repetir sua própria mensagem" #: lib/command.php:427 -#, fuzzy msgid "Already repeated that notice" -msgstr "Excluir esta mensagem" +msgstr "Você já repetiu essa mensagem" #: lib/command.php:435 -#, fuzzy, php-format +#, php-format msgid "Notice from %s repeated" -msgstr "Mensagem publicada" +msgstr "Mensagem de %s repetida" #: lib/command.php:437 -#, fuzzy msgid "Error repeating notice." -msgstr "Problema ao salvar a mensagem." +msgstr "Erro na repetição da mensagem." #: lib/command.php:491 -#, fuzzy, php-format +#, php-format msgid "Notice too long - maximum is %d characters, you sent %d" msgstr "" -"A mensagem é muito extensa - o máximo são 140 caracteres e você enviou %d" +"A mensagem é muito extensa - o máximo são %d caracteres e você enviou %d" #: lib/command.php:500 -#, fuzzy, php-format +#, php-format msgid "Reply to %s sent" -msgstr "Responder a esta mensagem" +msgstr "A resposta a %s foi enviada" #: lib/command.php:502 -#, fuzzy msgid "Error saving notice." -msgstr "Problema ao salvar a mensagem." +msgstr "Erro no salvamento da mensagem." #: lib/command.php:556 msgid "Specify the name of the user to subscribe to" @@ -4576,7 +4525,7 @@ msgstr "Efetuada a assinatura de %s" #: lib/command.php:584 msgid "Specify the name of the user to unsubscribe from" -msgstr "Especifique o nome do usuário que deixará de ser assinado" +msgstr "Especifique o nome do usuário cuja assinatura será cancelada" #: lib/command.php:591 #, php-format @@ -4593,7 +4542,7 @@ msgstr "Notificação desligada." #: lib/command.php:614 msgid "Can't turn off notification." -msgstr "Não é possível desligar a notificação" +msgstr "Não é possível desligar a notificação." #: lib/command.php:635 msgid "Notification on." @@ -4605,50 +4554,49 @@ msgstr "Não é possível ligar a notificação." #: lib/command.php:650 msgid "Login command is disabled" -msgstr "" +msgstr "O comando para autenticação está desabilitado" #: lib/command.php:664 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "Não foi possível criar a favorita." +msgstr "Não foi possível criar o token de autenticação para %s" #: lib/command.php:669 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" msgstr "" +"Este link é utilizável somente uma vez e é válido somente por dois minutos: %" +"s" #: lib/command.php:685 -#, fuzzy msgid "You are not subscribed to anyone." -msgstr "Você não está assinando esse perfil." +msgstr "Você não está assinando ninguém." #: lib/command.php:687 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "Você já está assinando esses usuários:" -msgstr[1] "Você já está assinando esses usuários:" +msgstr[0] "Você já está assinando esta pessoa:" +msgstr[1] "Você já está assinando estas pessoas:" #: lib/command.php:707 -#, fuzzy msgid "No one is subscribed to you." -msgstr "Não foi possível fazer com que o outros o sigam." +msgstr "Ninguém o assinou ainda." #: lib/command.php:709 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "Não foi possível fazer com que o outros o sigam." -msgstr[1] "Não foi possível fazer com que o outros o sigam." +msgstr[0] "Esta pessoa está assinando você:" +msgstr[1] "Estas pessoas estão assinando você:" #: lib/command.php:729 -#, fuzzy msgid "You are not a member of any groups." -msgstr "Você não está assinando esse perfil." +msgstr "Você não é membro de nenhum grupo." #: lib/command.php:731 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "Você não é membro deste grupo." -msgstr[1] "Você não é membro deste grupo." +msgstr[0] "Você é membro deste grupo:" +msgstr[1] "Você é membro destes grupos:" #: lib/command.php:745 msgid "" @@ -4690,32 +4638,68 @@ msgid "" "tracks - not yet implemented.\n" "tracking - not yet implemented.\n" msgstr "" +"Comandos:\n" +"on - ativa as notificações\n" +"off - desativa as notificações\n" +"help - exibe esta ajuda\n" +"follow - assina o usuário\n" +"groups - lista os grupos aos quais você se associou\n" +"subscriptions - lista as pessoas que você segue\n" +"subscribers - lista as pessoas que seguem você\n" +"leave - deixa de assinar o usuário\n" +"d - mensagem direta para o usuário\n" +"get - obtém a última mensagem do usuário\n" +"whois - obtém as informações do perfil do usuário\n" +"fav - adiciona a último mensagem do usuário como uma " +"'favorita'\n" +"fav # - adiciona a mensagem identificada como 'favorita'\n" +"repeat # - repete a mensagem identificada\n" +"repeat - repete a última mensagem do usuário\n" +"reply # - responde a mensagem identificada\n" +"reply - responde a última mensagem do usuário\n" +"join - associa-se ao grupo\n" +"login - obtém um link para se autenticar na interface web\n" +"drop - deixa o grupo\n" +"stats - obtém suas estatísticas\n" +"stop - o mesmo que 'off'\n" +"quit - o mesmo que 'off'\n" +"sub - o mesmo que 'follow'\n" +"unsub - o mesmo que 'leave'\n" +"last - o mesmo que 'get'\n" +"on - não implementado ainda\n" +"off - não implementado ainda\n" +"nudge - chama a atenção do usuário\n" +"invite - não implementado ainda\n" +"track - não implementado ainda\n" +"untrack - não implementado ainda\n" +"track off - não implementado ainda\n" +"untrack all - não implementado ainda\n" +"tracks - não implementado ainda\n" +"tracking - não implementado ainda\n" #: lib/common.php:199 -#, fuzzy msgid "No configuration file found. " -msgstr "Nenhum código de confirmação." +msgstr "Não foi encontrado nenhum arquivo de configuração. " #: lib/common.php:200 msgid "I looked for configuration files in the following places: " -msgstr "" +msgstr "Eu procurei pelos arquivos de configuração nos seguintes lugares: " #: lib/common.php:201 msgid "You may wish to run the installer to fix this." -msgstr "" +msgstr "Você pode querer executar o instalador para corrigir isto." #: lib/common.php:202 -#, fuzzy msgid "Go to the installer." -msgstr "Entrar" +msgstr "Ir para o instalador." #: lib/connectsettingsaction.php:110 msgid "IM" -msgstr "IM" +msgstr "MI" #: lib/connectsettingsaction.php:111 msgid "Updates by instant messenger (IM)" -msgstr "Atualizações via instant messenger (IM)" +msgstr "Atualizações via mensageiro instantâneo (MI)" #: lib/connectsettingsaction.php:116 msgid "Updates by SMS" @@ -4723,26 +4707,25 @@ msgstr "Atualizações via SMS" #: lib/dberroraction.php:60 msgid "Database error" -msgstr "" +msgstr "Erro no banco de dados" #: lib/designsettings.php:105 -#, fuzzy msgid "Upload file" -msgstr "Enviar" +msgstr "Enviar arquivo" #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "Você pode enviar seu avatar pessoal. O tamanho máximo do arquivo é %s" +msgstr "" +"Você pode enviar sua imagem de fundo. O tamanho máximo do arquivo é de 2Mb." #: lib/designsettings.php:418 msgid "Design defaults restored." -msgstr "" +msgstr "A aparência padrão foi restaurada." #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "Tirar das favoritas" +msgstr "Excluir das favoritas" #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" @@ -4754,19 +4737,19 @@ msgstr "Tornar favorita" #: lib/feed.php:85 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" #: lib/feed.php:87 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" #: lib/feed.php:89 msgid "Atom" -msgstr "" +msgstr "Atom" #: lib/feed.php:91 msgid "FOAF" -msgstr "" +msgstr "FOAF" #: lib/feedlist.php:64 msgid "Export data" @@ -4781,9 +4764,8 @@ msgid "All" msgstr "Todas" #: lib/galleryaction.php:139 -#, fuzzy msgid "Select tag to filter" -msgstr "Selecione uma operadora" +msgstr "Selecione a etiqueta para filtrar" #: lib/galleryaction.php:140 msgid "Tag" @@ -4799,17 +4781,16 @@ msgstr "Ir" #: lib/groupeditform.php:163 msgid "URL of the homepage or blog of the group or topic" -msgstr "URL para seu site, blog ou perfil em outro site" +msgstr "URL para o site ou blog do grupo ou tópico" #: lib/groupeditform.php:168 -#, fuzzy msgid "Describe the group or topic" -msgstr "Descreva o grupo ou tópico em 140 caracteres." +msgstr "Descreva o grupo ou tópico" #: lib/groupeditform.php:170 -#, fuzzy, php-format +#, php-format msgid "Describe the group or topic in %d characters" -msgstr "Descreva o grupo ou tópico em 140 caracteres." +msgstr "Descreva o grupo ou tópico em %d caracteres." #: lib/groupeditform.php:172 msgid "Description" @@ -4818,26 +4799,28 @@ msgstr "Descrição" #: lib/groupeditform.php:179 msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "Onde você está, ex: \"cidade, estado (ou região), país\"" +msgstr "" +"Localização do grupo, caso tenha alguma, como \"cidade, estado (ou região), " +"país\"" #: lib/groupeditform.php:187 #, php-format msgid "Extra nicknames for the group, comma- or space- separated, max %d" msgstr "" +"Apelidos extras para o grupo, separado por vírgulas ou espaços, no máximo %d" #: lib/groupnav.php:85 msgid "Group" msgstr "Grupo" #: lib/groupnav.php:101 -#, fuzzy msgid "Blocked" -msgstr "Bloquear" +msgstr "Bloqueados" #: lib/groupnav.php:102 -#, fuzzy, php-format +#, php-format msgid "%s blocked users" -msgstr "Bloquear usuário" +msgstr "%s usuários bloqueados" #: lib/groupnav.php:108 #, php-format @@ -4854,9 +4837,9 @@ msgid "Add or edit %s logo" msgstr "Adicionar ou editar logo de %s" #: lib/groupnav.php:120 -#, fuzzy, php-format +#, php-format msgid "Add or edit %s design" -msgstr "Adicionar ou editar logo de %s" +msgstr "Adicionar ou editar a aparência de %s" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" @@ -4876,9 +4859,9 @@ msgid "This page is not available in a media type you accept" msgstr "Esta página não está disponível em um tipo de mídia que você aceita" #: lib/imagefile.php:75 -#, fuzzy, php-format +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "Você pode enviar seu avatar pessoal." +msgstr "O arquivo é muito grande. O tamanho máximo é de %s." #: lib/imagefile.php:80 msgid "Partial upload." @@ -4906,16 +4889,16 @@ msgstr "Tipo de arquivo desconhecido" #: lib/imagefile.php:217 msgid "MB" -msgstr "" +msgstr "Mb" #: lib/imagefile.php:219 msgid "kB" -msgstr "" +msgstr "Kb" #: lib/jabber.php:191 #, php-format msgid "[%s]" -msgstr "" +msgstr "[%s]" #: lib/joinform.php:114 msgid "Join" @@ -4927,7 +4910,7 @@ msgstr "Sair" #: lib/logingroupnav.php:80 msgid "Login with a username and password" -msgstr "Autentique-se com um nome de usuário e senha" +msgstr "Autentique-se com um nome de usuário e uma senha" #: lib/logingroupnav.php:86 msgid "Sign up for a new account" @@ -4953,14 +4936,26 @@ msgid "" "Thanks for your time, \n" "%s\n" msgstr "" +"Olá, %s.\n" +"\n" +"Alguém digitou este endereço de e-mail no %s.\n" +"\n" +"Se foi você, e caso queira confirmar a sua entrada, use a URL abaixo:\n" +"\n" +"\t%s\n" +"\n" +"Caso contrário, simplesmente ignore esta mesagem.\n" +"\n" +"Obrigado pela sua atenção, \n" +"%s\n" #: lib/mail.php:236 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s agora está acompanhando suas mensagens em %2$s." +msgstr "%1$s agora está acompanhando suas mensagens no %2$s." #: lib/mail.php:241 -#, fuzzy, php-format +#, php-format msgid "" "%1$s is now listening to your notices on %2$s.\n" "\n" @@ -4973,12 +4968,16 @@ msgid "" "----\n" "Change your email address or notification options at %8$s\n" msgstr "" -"%1$s agora está acompanhando suas mensagens em %2$s.\n" +"%1$s agora está acompanhando suas mensagens no %2$s.\n" "\n" "\t%3$s\n" "\n" -"Cordialmente,\n" -"%4$s.\n" +"%4$s%5$s%6$s\n" +"Atenciosamente,\n" +"%7$s.\n" +"\n" +"----\n" +"Altere seu endereço de e-mail e suas opções de notificação em %8$s\n" #: lib/mail.php:254 #, php-format @@ -5002,7 +5001,7 @@ msgstr "" #: lib/mail.php:286 #, php-format msgid "New email address for posting to %s" -msgstr "Novo endereço de e-mail para postar para %s" +msgstr "Novo endereço de e-mail para publicar no %s" #: lib/mail.php:289 #, php-format @@ -5028,7 +5027,7 @@ msgstr "" #: lib/mail.php:413 #, php-format msgid "%s status" -msgstr "Status de %s" +msgstr "Mensagem de %s" #: lib/mail.php:439 msgid "SMS confirmation" @@ -5054,6 +5053,17 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s (%2$s) quer saber notícias suas e o está convidando para publicar " +"alguma mensagem..\n" +"\n" +"Por isso, vamos ouvir o que você tem a dizer. :)\n" +"\n" +"%3$s\n" +"\n" +"Não responda este e-mail, pois ele não chegará ao remetente.\n" +"\n" +"Atenciosamente,\n" +"%4$s\n" #: lib/mail.php:510 #, php-format @@ -5078,11 +5088,25 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) lhe enviou uma mensagem particular:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"Você pode responder a mensagem aqui:\n" +"\n" +"%4$s\n" +"\n" +"Não responda este e-mail, pois ele não chegará ao remetente.\n" +"\n" +"Atenciosamente,\n" +"%5$s\n" #: lib/mail.php:559 -#, fuzzy, php-format +#, php-format msgid "%s (@%s) added your notice as a favorite" -msgstr "%s marcaram sua mensagem como favorita" +msgstr "%s (@%s) marcou sua mensagem como favorita" #: lib/mail.php:561 #, php-format @@ -5104,11 +5128,27 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) acabou de adicionar sua mensagem do %2$s como uma favorita.\n" +"\n" +"A URL da sua mensagem é:\n" +"\n" +"%3$s\n" +"\n" +"O texto da sua mensagem é:\n" +"\n" +"%4$s\n" +"\n" +"Você pode ver a lista de favoritas de %1$saqui:\n" +"\n" +"%5$s\n" +"\n" +"Atenciosamente,\n" +"%6$s\n" #: lib/mail.php:624 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgstr "%s (@%s) enviou uma mensagem citando você" #: lib/mail.php:626 #, php-format @@ -5124,6 +5164,17 @@ msgid "" "\t%4$s\n" "\n" msgstr "" +"%1$s (@%9$s) acabou de enviar uma mensagem citando você ('@usuário') no %2" +"$s.\n" +"\n" +"A mensagem está aqui:\n" +"\n" +"\t%3$s\n" +"\n" +"Está escrito:\n" +"\n" +"\t%4$s\n" +"\n" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." @@ -5134,64 +5185,71 @@ msgid "" "You have no private messages. You can send private message to engage other " "users in conversation. People can send you messages for your eyes only." msgstr "" +"Você não tem nenhuma mensagem particular. Você pode enviar mensagens " +"privadas para envolver outras pessoas em uma conversa. Você também pode " +"receber mensagens privadas." #: lib/mailbox.php:227 lib/noticelist.php:469 -#, fuzzy msgid "from" -msgstr " de " +msgstr "de" #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." msgstr "" +"Ocorreu um erro no banco de dados durante o salvamento do seu arquivo. Por " +"favor, tente novamente." #: lib/mediafile.php:142 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"O arquivo a ser enviado é maior do que o limite definido no parâmetro " +"upload_max_filesize do php.ini." #: lib/mediafile.php:147 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" +"O arquivo a ser enviado é maior do que o limite definido no parâmetro " +"MAX_FILE_SIZE do formulário HTML." #: lib/mediafile.php:152 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "O arquivo foi apenas parcialmente enviado." #: lib/mediafile.php:159 msgid "Missing a temporary folder." -msgstr "" +msgstr "Falta uma pasta temporária." #: lib/mediafile.php:162 msgid "Failed to write file to disk." -msgstr "" +msgstr "Erro ao salvar o arquivo no disco." #: lib/mediafile.php:165 msgid "File upload stopped by extension." -msgstr "" +msgstr "O arquivo a ser enviado foi barrado por causa de sua extensão." #: lib/mediafile.php:179 lib/mediafile.php:216 msgid "File exceeds user's quota!" -msgstr "" +msgstr "O arquivo excede a quota do usuário!" #: lib/mediafile.php:196 lib/mediafile.php:233 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "Não foi possível mover o arquivo para o diretório de destino." #: lib/mediafile.php:201 lib/mediafile.php:237 -#, fuzzy msgid "Could not determine file's mime-type!" -msgstr "Não foi possível excluir a favorita." +msgstr "Não foi possível determinar o mime-type do arquivo!" #: lib/mediafile.php:270 #, php-format msgid " Try using another %s format." -msgstr "" +msgstr " Tente usar outro formato %s." #: lib/mediafile.php:275 #, php-format msgid "%s is not a supported filetype on this server." -msgstr "" +msgstr "%s não é um tipo de arquivo suportado neste servidor." #: lib/messageform.php:120 msgid "Send a direct notice" @@ -5201,70 +5259,64 @@ msgstr "Enviar uma mensagem direta" msgid "To" msgstr "Para" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Caracteres disponíveis" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Enviar uma mensagem" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "E aí, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" -msgstr "" +msgstr "Anexo" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" -msgstr "" +msgstr "Anexar um arquivo" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." -msgstr "" +#: lib/noticeform.php:213 +#, fuzzy +msgid "Share your location" +msgstr "Indique a sua localização " #: lib/noticelist.php:420 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -msgstr "" +msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" #: lib/noticelist.php:421 -#, fuzzy msgid "N" -msgstr "Não" +msgstr "N" #: lib/noticelist.php:421 msgid "S" -msgstr "" +msgstr "S" #: lib/noticelist.php:422 msgid "E" -msgstr "" +msgstr "L" #: lib/noticelist.php:422 msgid "W" -msgstr "" +msgstr "O" #: lib/noticelist.php:428 msgid "at" -msgstr "" +msgstr "em" #: lib/noticelist.php:523 -#, fuzzy msgid "in context" -msgstr "Nenhum conteúdo!" +msgstr "no contexto" #: lib/noticelist.php:548 -#, fuzzy msgid "Repeated by" -msgstr "Criar" +msgstr "Repetida por" #: lib/noticelist.php:577 msgid "Reply to this notice" @@ -5275,9 +5327,8 @@ msgid "Reply" msgstr "Responder" #: lib/noticelist.php:620 -#, fuzzy msgid "Notice repeated" -msgstr "Mensagem publicada" +msgstr "Mensagem repetida" #: lib/nudgeform.php:116 msgid "Nudge this user" @@ -5304,14 +5355,12 @@ msgid "Error inserting remote profile" msgstr "Erro na inserção do perfil remoto" #: lib/oauthstore.php:345 -#, fuzzy msgid "Duplicate notice" -msgstr "Excluir a mensagem" +msgstr "Duplicar a mensagem" #: lib/oauthstore.php:466 lib/subs.php:48 -#, fuzzy msgid "You have been banned from subscribing." -msgstr "Esse usuário bloqueou o seu pedido de assinatura." +msgstr "Você está proibido de assinar." #: lib/oauthstore.php:491 msgid "Couldn't insert new subscription." @@ -5363,14 +5412,12 @@ msgid "Subscribers" msgstr "Assinantes" #: lib/profileaction.php:157 -#, fuzzy msgid "All subscribers" -msgstr "Assinantes" +msgstr "Todos os assinantes" #: lib/profileaction.php:178 -#, fuzzy msgid "User ID" -msgstr "Usuário" +msgstr "ID do usuário" #: lib/profileaction.php:183 msgid "Member since" @@ -5378,16 +5425,15 @@ msgstr "Membro desde" #: lib/profileaction.php:245 msgid "All groups" -msgstr "" +msgstr "Todos os grupos" #: lib/profileformaction.php:123 -#, fuzzy msgid "No return-to arguments." -msgstr "Nenhum argumento de ID." +msgstr "Sem argumentos return-to." #: lib/profileformaction.php:137 msgid "Unimplemented method." -msgstr "" +msgstr "Método não implementado." #: lib/publicgroupnav.php:78 msgid "Public" @@ -5403,45 +5449,39 @@ msgstr "Etiquetas recentes" #: lib/publicgroupnav.php:88 msgid "Featured" -msgstr "Destacada" +msgstr "Em destaque" #: lib/publicgroupnav.php:92 msgid "Popular" msgstr "Popular" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "Responder a esta mensagem" +msgstr "Repetir esta mensagem?" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "Responder a esta mensagem" +msgstr "Repetir esta mensagem" #: lib/sandboxform.php:67 -#, fuzzy msgid "Sandbox" -msgstr "Recebidas" +msgstr "Isolamento" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "Desbloquear este usuário" +msgstr "Colocar este usuário em isolamento" #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "Procurar" +msgstr "Procurar no site" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "Palavra(s)-chave" #: lib/searchaction.php:162 -#, fuzzy msgid "Search help" -msgstr "Procurar" +msgstr "Ajuda da procura" #: lib/searchgroupnav.php:80 msgid "People" @@ -5449,15 +5489,15 @@ msgstr "Pessoas" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "Procure por pessoas neste site" +msgstr "Encontre pessoas neste site" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "Procure no conteúdo das mensagens" +msgstr "Encontre conteúdo de mensagens" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" -msgstr "Procurar por grupos neste site" +msgstr "Encontre grupos neste site" #: lib/section.php:89 msgid "Untitled section" @@ -5465,22 +5505,20 @@ msgstr "Seção sem título" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "Mais..." #: lib/silenceform.php:67 -#, fuzzy msgid "Silence" -msgstr "Nova mensagem" +msgstr "Silenciar" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "Bloquear usuário" +msgstr "Silenciar este usuário" #: lib/subgroupnav.php:83 #, php-format msgid "People %s subscribes to" -msgstr "Pessoas que %s assina" +msgstr "Assinaturas de %s" #: lib/subgroupnav.php:91 #, php-format @@ -5490,11 +5528,11 @@ msgstr "Assinantes de %s" #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" -msgstr "O grupo %s é membro de" +msgstr "Grupos dos quais %s é membro" #: lib/subs.php:52 msgid "Already subscribed!" -msgstr "" +msgstr "Já assinado!" #: lib/subs.php:56 msgid "User has blocked you." @@ -5506,17 +5544,15 @@ msgstr "Não foi possível assinar." #: lib/subs.php:79 msgid "Could not subscribe other to you." -msgstr "Não foi possível fazer com que o outros o sigam." +msgstr "Não foi possível fazer com que outros o assinem." #: lib/subs.php:128 -#, fuzzy msgid "Not subscribed!" -msgstr "Não é seguido!" +msgstr "Não assinado!" #: lib/subs.php:133 -#, fuzzy msgid "Couldn't delete self-subscription." -msgstr "Não foi possível excluir a assinatura." +msgstr "Não foi possível excluir a auto-assinatura." #: lib/subs.php:146 msgid "Couldn't delete subscription." @@ -5525,16 +5561,16 @@ msgstr "Não foi possível excluir a assinatura." #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" -msgstr "" +msgstr "Nuvem de etiquetas pessoais definidas pelas próprios usuários" #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "" +msgstr "Nuvem de etiquetas pessoais definidas pelos outros usuário" #: lib/subscriptionlist.php:126 msgid "(none)" -msgstr "(nenhum)" +msgstr "(nada)" #: lib/tagcloudsection.php:56 msgid "None" @@ -5546,21 +5582,19 @@ msgstr "Quem mais publica" #: lib/unsandboxform.php:69 msgid "Unsandbox" -msgstr "" +msgstr "Tirar do isolamento" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "Desbloquear este usuário" +msgstr "Tirar este usuário do isolamento" #: lib/unsilenceform.php:67 msgid "Unsilence" -msgstr "" +msgstr "Encerrar silenciamento" #: lib/unsilenceform.php:78 -#, fuzzy msgid "Unsilence this user" -msgstr "Desbloquear este usuário" +msgstr "Encerrar o silenciamento deste usuário" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" @@ -5571,91 +5605,86 @@ msgid "Unsubscribe" msgstr "Cancelar" #: lib/userprofile.php:116 -#, fuzzy msgid "Edit Avatar" -msgstr "Avatar" +msgstr "Editar o avatar" #: lib/userprofile.php:236 -#, fuzzy msgid "User actions" -msgstr "Outras opções" +msgstr "Ações do usuário" #: lib/userprofile.php:248 -#, fuzzy msgid "Edit profile settings" -msgstr "Configurações do perfil" +msgstr "Editar as configurações do perfil" #: lib/userprofile.php:249 msgid "Edit" -msgstr "" +msgstr "Editar" #: lib/userprofile.php:272 -#, fuzzy msgid "Send a direct message to this user" -msgstr "Você não pode enviar uma mensagem para esse usuário." +msgstr "Enviar uma mensagem para este usuário." #: lib/userprofile.php:273 -#, fuzzy msgid "Message" -msgstr "Nova mensagem" +msgstr "Mensagem" #: lib/userprofile.php:311 msgid "Moderate" -msgstr "" +msgstr "Moderar" #: lib/util.php:837 msgid "a few seconds ago" -msgstr "segundos atrás" +msgstr "alguns segundos atrás" #: lib/util.php:839 msgid "about a minute ago" -msgstr "1 min atrás" +msgstr "cerca de 1 minuto atrás" #: lib/util.php:841 #, php-format msgid "about %d minutes ago" -msgstr "%d mins atrás" +msgstr "cerca de %d minutos atrás" #: lib/util.php:843 msgid "about an hour ago" -msgstr "1 hora atrás" +msgstr "cerca de 1 hora atrás" #: lib/util.php:845 #, php-format msgid "about %d hours ago" -msgstr "%d horas atrás" +msgstr "cerca de %d horas atrás" #: lib/util.php:847 msgid "about a day ago" -msgstr "1 dia atrás" +msgstr "cerca de 1 dia atrás" #: lib/util.php:849 #, php-format msgid "about %d days ago" -msgstr "%d dias atrás" +msgstr "cerca de %d dias atrás" #: lib/util.php:851 msgid "about a month ago" -msgstr "1 mês atrás" +msgstr "cerca de 1 mês atrás" #: lib/util.php:853 #, php-format msgid "about %d months ago" -msgstr "%d meses atrás" +msgstr "cerca de %d meses atrás" #: lib/util.php:855 msgid "about a year ago" -msgstr "1 ano atrás" +msgstr "cerca de 1 ano atrás" #: lib/webcolor.php:82 -#, fuzzy, php-format +#, php-format msgid "%s is not a valid color!" -msgstr "A URL do site informada não é válida." +msgstr "%s não é uma cor válida!" #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "" +msgstr "%s não é uma cor válida! Utilize 3 ou 6 caracteres hexadecimais." #: scripts/maildaemon.php:48 msgid "Could not parse message." @@ -5671,4 +5700,4 @@ msgstr "Desculpe-me, mas este não é seu endereço de e-mail para recebimento." #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "Desculpe-me, mas não é permitido o recebimento de emails." +msgstr "Desculpe-me, mas não é permitido o recebimento de e-mails." diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index a03404bef..283fabb11 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:34+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:18+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -1760,7 +1760,7 @@ msgstr "Личное сообщение" msgid "Optionally add a personal message to the invitation." msgstr "Можно добавить к приглашению личное сообщение." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "ОК" @@ -5246,33 +5246,29 @@ msgstr "Послать прямую запись" msgid "To" msgstr "Для" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "6 или больше знаков" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Послать запись" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Что нового, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Прикрепить" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Прикрепить файл" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/statusnet.po b/locale/statusnet.po index 114d8ba6e..ab0622dfc 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1672,7 +1672,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "" @@ -4838,33 +4838,29 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index 993989074..ffab35712 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:38+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:21+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -1741,7 +1741,7 @@ msgstr "Personligt meddelande" msgid "Optionally add a personal message to the invitation." msgstr "Om du vill, skriv ett personligt meddelande till inbjudan." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Skicka" @@ -5060,33 +5060,29 @@ msgstr "Skicka ett direktinlägg" msgid "To" msgstr "Till" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Tillgängliga tecken" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Skicka ett inlägg" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Vad är på gång, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Bifoga" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Bifoga en fil" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index 25b649cf9..fd72f7155 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:41+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:24+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -1693,7 +1693,7 @@ msgstr "వ్యక్తిగత సందేశం" msgid "Optionally add a personal message to the invitation." msgstr "ఐచ్ఛికంగా ఆహ్వానానికి వ్యక్తిగత సందేశం చేర్చండి." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "పంపించు" @@ -4947,34 +4947,30 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "అందుబాటులో ఉన్న అక్షరాలు" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "కొత్త సందేశం" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "%s, సంగతులేమిటి?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "జోడించు" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "ఒక ఫైలుని జోడించు" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 9c8df065d..5c3d40656 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:44+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:27+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -1762,7 +1762,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Gönder" @@ -5082,35 +5082,31 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6 veya daha fazla karakter" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Yeni durum mesajı" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "N'aber %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 587487404..8ad78f841 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:47+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:30+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -1746,7 +1746,7 @@ msgstr "Особисті повідомлення" msgid "Optionally add a personal message to the invitation." msgstr "Можна додати персональне повідомлення до запрошення (опціонально)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Так!" @@ -2486,9 +2486,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Не вдалося оновити користувача для автопідписки." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Не вдалося зберегти теґи." +msgstr "Не вдалося зберегти налаштування розташування." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -5233,33 +5232,29 @@ msgstr "Надіслати прямий допис" msgid "To" msgstr "До" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" msgstr "Лишилось знаків" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 msgid "Send a notice" msgstr "Надіслати допис" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Що нового, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "Вкласти" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "Вкласти файл" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index ddf60fe0e..826dc5882 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:50+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:33+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -1817,7 +1817,7 @@ msgstr "Tin nhắn cá nhân" msgid "Optionally add a personal message to the invitation." msgstr "Không bắt buộc phải thêm thông điệp vào thư mời." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "Gửi" @@ -5307,35 +5307,31 @@ msgstr "Xóa tin nhắn" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "Nhiều hơn 6 ký tự" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "Thông báo mới" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "Bạn đang làm gì thế, %s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index 90d2a301f..d13d22e33 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:53+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:36+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -1776,7 +1776,7 @@ msgstr "个人消息" msgid "Optionally add a personal message to the invitation." msgstr "在邀请中加几句话(可选)。" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "发送" @@ -5168,35 +5168,31 @@ msgstr "删除通告" msgid "To" msgstr "到" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6 个或更多字符" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "发送消息" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "怎么样,%s?" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index fc38ad1fa..bba05320e 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-12-30 19:06+0000\n" -"PO-Revision-Date: 2009-12-30 19:07:56+0000\n" +"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"PO-Revision-Date: 2010-01-01 18:15:39+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60512); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -1736,7 +1736,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:222 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 msgid "Send" msgstr "" @@ -4991,35 +4991,31 @@ msgstr "" msgid "To" msgstr "" -#: lib/messageform.php:159 lib/noticeform.php:183 +#: lib/messageform.php:159 lib/noticeform.php:185 #, fuzzy msgid "Available characters" msgstr "6個以上字元" -#: lib/noticeform.php:158 +#: lib/noticeform.php:160 #, fuzzy msgid "Send a notice" msgstr "新訊息" -#: lib/noticeform.php:171 +#: lib/noticeform.php:173 #, php-format msgid "What's up, %s?" msgstr "" -#: lib/noticeform.php:190 +#: lib/noticeform.php:192 msgid "Attach" msgstr "" -#: lib/noticeform.php:194 +#: lib/noticeform.php:196 msgid "Attach a file" msgstr "" -#: lib/noticeform.php:225 -msgid "Share your location " -msgstr "" - -#: lib/noticeform.php:226 -msgid "Finding your location..." +#: lib/noticeform.php:213 +msgid "Share your location" msgstr "" #: lib/noticelist.php:420 -- cgit v1.2.3-54-g00ecf From 727978332ae7e074024ac7f9900570ebb0e9ba80 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 1 Jan 2010 10:57:22 -1000 Subject: stop using DB_DataObject's staticGet() which caches --- classes/Memcached_DataObject.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index d8b0db5a6..f51133508 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -51,11 +51,17 @@ class Memcached_DataObject extends DB_DataObject if ($i) { return $i; } else { - $i = DB_DataObject::staticGet($cls, $k, $v); - if ($i) { + $i = DB_DataObject::factory($cls); + if (empty($i)) { + return null; + } + $result = $i->get($k, $v); + if ($result) { $i->encache(); + return $i; + } else { + return null; } - return $i; } } -- cgit v1.2.3-54-g00ecf From b0527801d9c2b84408bbfdf82bbdc5b778f72cfc Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 1 Jan 2010 11:02:56 -1000 Subject: add cleanup method to cleanup a single row --- classes/Memcached_DataObject.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index f51133508..cf7fb4340 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -253,6 +253,18 @@ class Memcached_DataObject extends DB_DataObject return new ArrayWrapper($cached); } + function cleanup() + { + global $_DB_DATAOBJECT; + + if (isset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid])) { + unset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid]); + } + if (isset($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid])) { + unset($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid]); + } + } + // We overload so that 'SET NAMES "utf8"' is called for // each connection -- cgit v1.2.3-54-g00ecf From f6ab4ea1362492a491f9474c5d0e803857bf9583 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 1 Jan 2010 21:11:32 +0000 Subject: Added geotag icon from http://www.geotagicons.com/ --- theme/base/css/display.css | 5 ++--- theme/base/images/icons/icons-01.gif | Bin 3201 -> 3443 bytes theme/identica/css/display.css | 8 ++++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index d6a50ac60..d876460e1 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -569,6 +569,7 @@ font-size:0.8em; .form_notice #notice_data-location_wrap input { margin-right:7px; float:left; +top:3px; } .form_notice #notice_data-location_wrap label { font-weight:normal; @@ -577,9 +578,7 @@ font-size:1em; .form_notice #notice_data-location_name { display:block; line-height:1.6; -} -.form_notice span#notice_data-location_name { -padding-left:18px; +padding-left:21px; } button.close { diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index 417327881..cda932161 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 78a0707ce..34be6eefa 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -111,9 +111,12 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); text-shadow:none; } -.form_notice #notice_data-location_name { +.form_notice span#notice_data-location_name { background-position:0 47%; } +.form_notice a#notice_data-location_name { +background-position:0 -1711px; +} a, .form_settings input.form_action-primary, @@ -181,7 +184,8 @@ button.close, .entity_sandbox input.submit, .entity_silence input.submit, .entity_delete input.submit, -.notice-options .repeated { +.notice-options .repeated, +.form_notice a#notice_data-location_name { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; -- cgit v1.2.3-54-g00ecf From 1b3917c6a7f3f12394e93f5388210df185b419e7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 1 Jan 2010 21:12:49 +0000 Subject: Included geotag icon file separately --- theme/base/images/icons/icon_geo.png | Bin 0 -> 894 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 theme/base/images/icons/icon_geo.png diff --git a/theme/base/images/icons/icon_geo.png b/theme/base/images/icons/icon_geo.png new file mode 100644 index 000000000..8df245699 Binary files /dev/null and b/theme/base/images/icons/icon_geo.png differ -- cgit v1.2.3-54-g00ecf From 79c2e3f7202aa652414df885bd4c917a316ea7f3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 1 Jan 2010 11:27:13 -1000 Subject: Revert "add cleanup method to cleanup a single row" This reverts commit b0527801d9c2b84408bbfdf82bbdc5b778f72cfc. --- classes/Memcached_DataObject.php | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index cf7fb4340..f51133508 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -253,18 +253,6 @@ class Memcached_DataObject extends DB_DataObject return new ArrayWrapper($cached); } - function cleanup() - { - global $_DB_DATAOBJECT; - - if (isset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid])) { - unset($_DB_DATAOBJECT['RESULTFIELDS'][$this->_DB_resultid]); - } - if (isset($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid])) { - unset($_DB_DATAOBJECT['RESULTS'][$this->_DB_resultid]); - } - } - // We overload so that 'SET NAMES "utf8"' is called for // each connection -- cgit v1.2.3-54-g00ecf From f990237c03ab8f5e2a7b3e90d79566b0901bec9b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 1 Jan 2010 22:49:42 +0000 Subject: Don't need margin-bottom for share location option --- theme/base/css/display.css | 1 + 1 file changed, 1 insertion(+) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index d876460e1..a0b12a9f4 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -574,6 +574,7 @@ top:3px; .form_notice #notice_data-location_wrap label { font-weight:normal; font-size:1em; +margin-bottom:0; } .form_notice #notice_data-location_name { display:block; -- cgit v1.2.3-54-g00ecf From 52fbd101629b59f279195d0b11c7775b8aa4637f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 08:36:47 -1000 Subject: incorrectly used empty() instead of isset() for a variable that could be 0 --- classes/Notice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Notice.php b/classes/Notice.php index 0bb3b861c..93e94230d 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -214,7 +214,7 @@ class Notice extends Memcached_DataObject extract($options); } - if (empty($is_local)) { + if (!isset($is_local)) { $is_local = Notice::LOCAL_PUBLIC; } -- cgit v1.2.3-54-g00ecf From ec5850d26a46b88c14579959c8bcf34e936b087e Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 00:33:41 +0000 Subject: Changed location share representation to be more like the file attachment. Init UI. Probably a little buggy. --- js/util.js | 38 ++++++++++++++++++++++++++--------- lib/noticeform.php | 3 +-- theme/base/css/display.css | 29 ++++++++++++++++++-------- theme/base/images/icons/icons-01.gif | Bin 3443 -> 3533 bytes theme/identica/css/display.css | 9 ++++++++- 5 files changed, 59 insertions(+), 20 deletions(-) diff --git a/js/util.js b/js/util.js index dd7a74a7a..8ee0dd05d 100644 --- a/js/util.js +++ b/js/util.js @@ -52,7 +52,9 @@ var SN = { // StatusNet NoticeLocationId: 'notice_data-location_id', NoticeLocationNs: 'notice_data-location_ns', NoticeLocationName: 'notice_data-location_name', - NoticeLocationCookieName: 'location_enabled' + NoticeLocationCookieName: 'location_enabled', + NoticeDataGeo: 'notice_data-geo', + NoticeDataGeoSelected: 'notice_data-geo_selected' } }, @@ -438,29 +440,46 @@ var SN = { // StatusNet }, NoticeLocationAttach: function() { - if ($('#notice_data-location_enabled').length > 0) { + var NDG = $('#'+SN.C.S.NoticeDataGeo); + if (NDG.length > 0) { + NDG.attr('title', NDG.text()); var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); - NLE.insertAfter('#'+SN.C.S.FormNotice+' fieldset'); + var S = '
'; + var NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); + + if (NDGS.length > 0) { + NDGS.replaceWith(S); + } + else { + $('#'+SN.C.S.FormNotice).append(S); + } + NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); + + $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ + $('#'+SN.C.S.NoticeDataGeoSelected).remove(); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); + }); if (navigator.geolocation) { NLE.change(function() { NLE.removeAttr('title'); - $.cookie(SN.C.S.NoticeLocationCookieName, $('#notice_data-location_enabled').attr('checked')); + $.cookie(SN.C.S.NoticeLocationCookieName, $('#'+SN.C.S.NoticeDataGeo).attr('checked')); var NLN = $('#'+SN.C.S.NoticeLocationName); if (NLN.length > 0) { NLN.remove(); } - NLE.prepend('Geo'); + NDGS.prepend('Geo'); NLN = $('#'+SN.C.S.NoticeLocationName); - if ($('#notice_data-location_enabled').attr('checked') === true) { - NLN.show(); + if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { + NDGS.show(); NLN.addClass('processing'); + $('label[for=notice_data-geo]').addClass('checked'); navigator.geolocation.getCurrentPosition(function(position) { $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); @@ -497,7 +516,8 @@ var SN = { // StatusNet }); } else { - NLN.hide(); + $('label[for=notice_data-geo]').removeClass('checked'); + NDGS.hide(); $('#'+SN.C.S.NoticeLat).val(''); $('#'+SN.C.S.NoticeLon).val(''); $('#'+SN.C.S.NoticeLocationNs).val(''); @@ -506,7 +526,7 @@ var SN = { // StatusNet }); var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - $('#notice_data-location_enabled').attr('checked', (cookieVal == null || cookieVal == 'true')); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', (cookieVal == null || cookieVal == 'true')); NLE.change(); } } diff --git a/lib/noticeform.php b/lib/noticeform.php index d35655a0b..99865645a 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -208,9 +208,8 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? (empty($this->profile->location_ns) ? null : $this->profile->location_ns) : $this->location_ns, 'location_ns'); $this->out->elementStart('div', array('id' => 'notice_data-location_wrap', - 'class' => 'success', 'title' => common_local_url('geocode'))); - $this->out->checkbox('notice_data-location_enabled', _('Share your location'), true); + $this->out->checkbox('notice_data-geo', _('Share your location'), true); $this->out->elementEnd('div'); } diff --git a/theme/base/css/display.css b/theme/base/css/display.css index a0b12a9f4..fc8762cdc 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -554,31 +554,44 @@ width:81.5%; margin-bottom:0; line-height:1.618; } -.form_notice #notice_data-attach_selected code { +.form_notice #notice_data-attach_selected code, +.form_notice #notice_data-location_name { float:left; -width:90%; +width:87%; display:block; -font-size:1.1em; line-height:1.8; overflow:auto; } -.form_notice #notice_data-attach_selected button { +.form_notice #notice_data-attach_selected code { +font-size:1.1em; +} +.form_notice #notice_data-attach_selected button.close, +.form_notice #notice_data-geo_selected button.close { float:right; font-size:0.8em; } + +.form_notice #notice_data-location_wrap label { +position:absolute; +top:25px; +right:4px; +left:auto; +cursor:pointer; +width:16px; +height:16px; +display:block; +} .form_notice #notice_data-location_wrap input { -margin-right:7px; -float:left; -top:3px; +display:none; } .form_notice #notice_data-location_wrap label { font-weight:normal; font-size:1em; margin-bottom:0; +text-indent:-9999px; } .form_notice #notice_data-location_name { display:block; -line-height:1.6; padding-left:21px; } diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index cda932161..03db8c09c 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index 34be6eefa..a47837387 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -117,6 +117,12 @@ background-position:0 47%; .form_notice a#notice_data-location_name { background-position:0 -1711px; } +.form_notice label[for=notice_data-geo] { +background-position:0 -1780px; +} +.form_notice label[for=notice_data-geo].checked { +background-position:0 -1847px; +} a, .form_settings input.form_action-primary, @@ -185,7 +191,8 @@ button.close, .entity_silence input.submit, .entity_delete input.submit, .notice-options .repeated, -.form_notice a#notice_data-location_name { +.form_notice a#notice_data-location_name, +.form_notice label[for=notice_data-geo] { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; -- cgit v1.2.3-54-g00ecf From 503d0acd49a855ba8853539448a0d6c11e2ca42a Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 01:02:32 +0000 Subject: Added minimize functionality to selected location container --- js/util.js | 10 +++++++++- theme/base/css/display.css | 10 ++++++++-- theme/base/images/icons/icons-01.gif | Bin 3533 -> 3574 bytes theme/identica/css/display.css | 6 +++++- 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/js/util.js b/js/util.js index 8ee0dd05d..7354a24ca 100644 --- a/js/util.js +++ b/js/util.js @@ -446,7 +446,7 @@ var SN = { // StatusNet var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); - var S = '
'; + var S = '
'; var NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); if (NDGS.length > 0) { @@ -460,6 +460,14 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ $('#'+SN.C.S.NoticeDataGeoSelected).remove(); $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); + + return false; + }); + + $('#'+SN.C.S.NoticeDataGeoSelected+' button.minimize').click(function(){ + $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + + return false; }); if (navigator.geolocation) { diff --git a/theme/base/css/display.css b/theme/base/css/display.css index fc8762cdc..0bb3479cc 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -557,10 +557,11 @@ line-height:1.618; .form_notice #notice_data-attach_selected code, .form_notice #notice_data-location_name { float:left; -width:87%; +width:80%; display:block; line-height:1.8; overflow:auto; +margin-right:2.5%; } .form_notice #notice_data-attach_selected code { font-size:1.1em; @@ -570,6 +571,10 @@ font-size:1.1em; float:right; font-size:0.8em; } +, +.form_notice #notice_data-geo_selected button.minimize { +float:left; +} .form_notice #notice_data-location_wrap label { position:absolute; @@ -595,7 +600,8 @@ display:block; padding-left:21px; } -button.close { +button.close, +button.minimize { width:16px; height:16px; text-indent:-9999px; diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index 03db8c09c..fccc35b84 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index a47837387..e7da3612a 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -192,7 +192,8 @@ button.close, .entity_delete input.submit, .notice-options .repeated, .form_notice a#notice_data-location_name, -.form_notice label[for=notice_data-geo] { +.form_notice label[for=notice_data-geo], +button.minimize { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; @@ -253,6 +254,9 @@ background-color:#EFF3DC; button.close { background-position:0 -1120px; } +button.minimize { +background-position:0 -1912px; +} #anon_notice { background-color:#87B4C8; -- cgit v1.2.3-54-g00ecf From 0a07aeb25a967e9d5b87478d970ce2769df580bb Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 01:13:42 +0000 Subject: Updated pin icon --- theme/base/images/icons/icons-01.gif | Bin 3574 -> 3607 bytes theme/identica/css/display.css | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/base/images/icons/icons-01.gif b/theme/base/images/icons/icons-01.gif index fccc35b84..06202a047 100644 Binary files a/theme/base/images/icons/icons-01.gif and b/theme/base/images/icons/icons-01.gif differ diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index e7da3612a..a3e0f7ec3 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -121,7 +121,7 @@ background-position:0 -1711px; background-position:0 -1780px; } .form_notice label[for=notice_data-geo].checked { -background-position:0 -1847px; +background-position:0 -1846px; } a, -- cgit v1.2.3-54-g00ecf From 4983564949ff13f063bb833877b36fdb7a352014 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 01:17:51 +0000 Subject: Reset location icon when container button.close is clicked --- js/util.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/util.js b/js/util.js index 7354a24ca..35530d745 100644 --- a/js/util.js +++ b/js/util.js @@ -460,6 +460,7 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ $('#'+SN.C.S.NoticeDataGeoSelected).remove(); $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); + $('label[for=notice_data-geo]').removeClass('checked'); return false; }); -- cgit v1.2.3-54-g00ecf From aef31280f38c6ecff2b3c1a4a9f871c6be0c9fae Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 01:48:41 +0000 Subject: Moved location container's buttons inside enabled state --- js/util.js | 59 ++++++++++++++++++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/js/util.js b/js/util.js index 35530d745..d43a99a18 100644 --- a/js/util.js +++ b/js/util.js @@ -442,37 +442,13 @@ var SN = { // StatusNet NoticeLocationAttach: function() { var NDG = $('#'+SN.C.S.NoticeDataGeo); if (NDG.length > 0) { - NDG.attr('title', NDG.text()); var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); - var S = '
'; - var NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); - - if (NDGS.length > 0) { - NDGS.replaceWith(S); - } - else { - $('#'+SN.C.S.FormNotice).append(S); - } - NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); - - $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ - $('#'+SN.C.S.NoticeDataGeoSelected).remove(); - $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $('label[for=notice_data-geo]').removeClass('checked'); - - return false; - }); - - $('#'+SN.C.S.NoticeDataGeoSelected+' button.minimize').click(function(){ - $('#'+SN.C.S.NoticeDataGeoSelected).hide(); - - return false; - }); + $('label[for=notice_data-geo]').attr('title', NLE.text()); if (navigator.geolocation) { - NLE.change(function() { + NDG.change(function() { NLE.removeAttr('title'); $.cookie(SN.C.S.NoticeLocationCookieName, $('#'+SN.C.S.NoticeDataGeo).attr('checked')); @@ -482,14 +458,39 @@ var SN = { // StatusNet NLN.remove(); } + var S = '
'; + NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); + if (NDGS.length > 0) { + NDGS.replaceWith(S); + } + else { + $('#'+SN.C.S.FormNotice).append(S); + } + NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); NDGS.prepend('Geo'); + NLN = $('#'+SN.C.S.NoticeLocationName); if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { - NDGS.show(); NLN.addClass('processing'); $('label[for=notice_data-geo]').addClass('checked'); + NDGS.append(' '); + + $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ + $('#'+SN.C.S.NoticeDataGeoSelected).remove(); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); + $('label[for=notice_data-geo]').removeClass('checked'); + + return false; + }); + + $('#'+SN.C.S.NoticeDataGeoSelected+' button.minimize').click(function(){ + $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + + return false; + }); + navigator.geolocation.getCurrentPosition(function(position) { $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); @@ -535,8 +536,8 @@ var SN = { // StatusNet }); var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - $('#'+SN.C.S.NoticeDataGeo).attr('checked', (cookieVal == null || cookieVal == 'true')); - NLE.change(); + NDG.attr('checked', (cookieVal == null || cookieVal == 'true')); + NDG.change(); } } }, -- cgit v1.2.3-54-g00ecf From 467ae9d9e771fed21a0ebb572ee963f9160943c7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 02:00:12 +0000 Subject: Button should return false --- js/util.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/util.js b/js/util.js index d43a99a18..a460a9dbc 100644 --- a/js/util.js +++ b/js/util.js @@ -435,6 +435,8 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeDataAttachSelected+' button').click(function(){ $('#'+SN.C.S.NoticeDataAttachSelected).remove(); NDA.val(''); + + return false; }); }); }, -- cgit v1.2.3-54-g00ecf From 94af0d1279b98311dde2bbcaaa10729020d12468 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sun, 3 Jan 2010 02:07:55 +0000 Subject: Fix end tag --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index a460a9dbc..f6b59ec74 100644 --- a/js/util.js +++ b/js/util.js @@ -460,7 +460,7 @@ var SN = { // StatusNet NLN.remove(); } - var S = '
'; + var S = '
'; NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); if (NDGS.length > 0) { NDGS.replaceWith(S); -- cgit v1.2.3-54-g00ecf From 2bd32dfad73d1387353199e5f45d02a9c5d770e5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 16:21:19 -1000 Subject: change harmless check of to check of in Memcached_DataObject --- classes/Memcached_DataObject.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index bf61b0766..ad8876ff9 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -99,7 +99,7 @@ class Memcached_DataObject extends DB_DataObject } static function cacheKey($cls, $k, $v) { - if (is_object($cls) || is_object($j) || is_object($v)) { + if (is_object($cls) || is_object($k) || is_object($v)) { $e = new Exception(); common_log(LOG_ERR, __METHOD__ . ' object in param: ' . str_replace("\n", " ", $e->getTraceAsString())); -- cgit v1.2.3-54-g00ecf From 3b912ac97e2c19c2861065dbf2584a42810aa533 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 16:27:04 -1000 Subject: fixup memcache functions --- lib/util.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/util.php b/lib/util.php index df3110ddd..22dc0f934 100644 --- a/lib/util.php +++ b/lib/util.php @@ -62,7 +62,7 @@ function common_init_language() // gettext will still select the right language. $language = common_language(); $locale_set = common_init_locale($language); - + setlocale(LC_CTYPE, 'C'); // So we do not have to make people install the gettext locales $path = common_config('site','locale_path'); -- cgit v1.2.3-54-g00ecf From d32fb7c7c40e3d5fa67496d5df0574fc9c2e0151 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 16:28:46 -1000 Subject: return false from Memcached_DataObject::staticGet() on not found, like DB_DataObject --- classes/Memcached_DataObject.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index ad8876ff9..b43cb0b56 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -39,14 +39,14 @@ class Memcached_DataObject extends DB_DataObject } else { $i = DB_DataObject::factory($cls); if (empty($i)) { - return null; + return false; } $result = $i->get($k, $v); if ($result) { $i->encache(); return $i; } else { - return null; + return false; } } } -- cgit v1.2.3-54-g00ecf From c5d23e27a6a34e02090ebcece60dfa5b7f814488 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 20:26:33 -1000 Subject: Make caching a plugin system --- lib/cache.php | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/util.php | 31 ++-------------- 2 files changed, 116 insertions(+), 28 deletions(-) create mode 100644 lib/cache.php diff --git a/lib/cache.php b/lib/cache.php new file mode 100644 index 000000000..d1ba65dab --- /dev/null +++ b/lib/cache.php @@ -0,0 +1,113 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +/** + * Interface for caching + * + * An abstract interface for caching. + * + */ + +class Cache +{ + var $_items = array(); + static $_inst = null; + + static function instance() + { + if (is_null(self::$_inst)) { + self::$_inst = new Cache(); + } + + return self::$_inst; + } + + static function key($extra) + { + $base_key = common_config('memcached', 'base'); + + if (empty($base_key)) { + $base_key = common_keyize(common_config('site', 'name')); + } + + return 'statusnet:' . $base_key . ':' . $extra; + } + + static function keyize($str) + { + $str = strtolower($str); + $str = preg_replace('/\s/', '_', $str); + return $str; + } + + function get($key) + { + $value = null; + + if (!Event::handle('StartCacheGet', array(&$key, &$value))) { + if (array_key_exists($_items, $key)) { + common_log(LOG_INFO, 'Cache HIT for key ' . $key); + $value = $_items[$key]; + } else { + common_log(LOG_INFO, 'Cache MISS for key ' . $key); + } + Event::handle('EndCacheGet', array($key, &$value)); + } + + return $value; + } + + function set($key, $value, $flag=null, $expiry=null) + { + $success = false; + + if (!Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { + common_log(LOG_INFO, 'Setting cache value for key ' . $key); + $_items[$key] = $value; + $success = true; + Event::handle('EndCacheSet', array($key, $value, $flag, $expiry)); + } + + return $success; + } + + function delete($key) + { + $success = false; + + if (!Event::handle('StartCacheDelete', array(&$key, &$success))) { + common_log(LOG_INFO, 'Deleting cache value for key ' . $key); + unset($_items[$key]); + $success = true; + Event::handle('EndCacheDelete', array($key)); + } + + return $success; + } +} diff --git a/lib/util.php b/lib/util.php index 22dc0f934..63656b604 100644 --- a/lib/util.php +++ b/lib/util.php @@ -1384,42 +1384,17 @@ function common_session_token() function common_cache_key($extra) { - $base_key = common_config('memcached', 'base'); - - if (empty($base_key)) { - $base_key = common_keyize(common_config('site', 'name')); - } - - return 'statusnet:' . $base_key . ':' . $extra; + return Cache::key($extra); } function common_keyize($str) { - $str = strtolower($str); - $str = preg_replace('/\s/', '_', $str); - return $str; + return Cache::keyize($str); } function common_memcache() { - static $cache = null; - if (!common_config('memcached', 'enabled')) { - return null; - } else { - if (!$cache) { - $cache = new Memcache(); - $servers = common_config('memcached', 'server'); - if (is_array($servers)) { - foreach($servers as $server) { - $cache->addServer($server); - } - } else { - $cache->addServer($servers); - } - $cache->setCompressThreshold(20000, 0.2); - } - return $cache; - } + return Cache::instance(); } function common_license_terms($uri) -- cgit v1.2.3-54-g00ecf From e1de1bf0fef4c7ae21ebca99dc4f38746c9d2df2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 20:32:56 -1000 Subject: fix default array implementation checks --- lib/cache.php | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/cache.php b/lib/cache.php index d1ba65dab..31d2f84d2 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -71,9 +71,9 @@ class Cache $value = null; if (!Event::handle('StartCacheGet', array(&$key, &$value))) { - if (array_key_exists($_items, $key)) { + if (array_key_exists($key, $this->_items)) { common_log(LOG_INFO, 'Cache HIT for key ' . $key); - $value = $_items[$key]; + $value = $this->_items[$key]; } else { common_log(LOG_INFO, 'Cache MISS for key ' . $key); } @@ -89,7 +89,7 @@ class Cache if (!Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { common_log(LOG_INFO, 'Setting cache value for key ' . $key); - $_items[$key] = $value; + $this->_items[$key] = $value; $success = true; Event::handle('EndCacheSet', array($key, $value, $flag, $expiry)); } @@ -102,8 +102,10 @@ class Cache $success = false; if (!Event::handle('StartCacheDelete', array(&$key, &$success))) { - common_log(LOG_INFO, 'Deleting cache value for key ' . $key); - unset($_items[$key]); + if (array_key_exists($key, $this->_items[$key])) { + common_log(LOG_INFO, 'Deleting cache value for key ' . $key); + unset($this->_items[$key]); + } $success = true; Event::handle('EndCacheDelete', array($key)); } -- cgit v1.2.3-54-g00ecf From 65d07b657dfbda0f696109769192d54856b5b8e8 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 20:37:30 -1000 Subject: invert if for cache handling --- lib/cache.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/cache.php b/lib/cache.php index 31d2f84d2..9ea531c07 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -70,7 +70,7 @@ class Cache { $value = null; - if (!Event::handle('StartCacheGet', array(&$key, &$value))) { + if (Event::handle('StartCacheGet', array(&$key, &$value))) { if (array_key_exists($key, $this->_items)) { common_log(LOG_INFO, 'Cache HIT for key ' . $key); $value = $this->_items[$key]; @@ -87,7 +87,7 @@ class Cache { $success = false; - if (!Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { + if (Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { common_log(LOG_INFO, 'Setting cache value for key ' . $key); $this->_items[$key] = $value; $success = true; @@ -101,7 +101,7 @@ class Cache { $success = false; - if (!Event::handle('StartCacheDelete', array(&$key, &$success))) { + if (Event::handle('StartCacheDelete', array(&$key, &$success))) { if (array_key_exists($key, $this->_items[$key])) { common_log(LOG_INFO, 'Deleting cache value for key ' . $key); unset($this->_items[$key]); -- cgit v1.2.3-54-g00ecf From 1e1062ca9ca51ef618600459240bb0d497a47491 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 21:00:42 -1000 Subject: Make cache.php PHPCS-clean --- lib/cache.php | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 76 insertions(+), 4 deletions(-) diff --git a/lib/cache.php b/lib/cache.php index 9ea531c07..63f582861 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -30,15 +30,31 @@ /** * Interface for caching * - * An abstract interface for caching. + * An abstract interface for caching. Because we originally used the + * Memcache plugin directly, the interface uses a small subset of the + * Memcache interface. * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ */ class Cache { - var $_items = array(); + var $_items = array(); static $_inst = null; + /** + * Singleton constructor + * + * Use this to get the singleton instance of Cache. + * + * @return Cache cache object + */ + static function instance() { if (is_null(self::$_inst)) { @@ -48,6 +64,18 @@ class Cache return self::$_inst; } + /** + * Create a cache key from input text + * + * Builds a cache key from input text. Helps to namespace + * the cache area (if shared with other applications or sites) + * and prevent conflicts. + * + * @param string $extra the real part of the key + * + * @return string full key + */ + static function key($extra) { $base_key = common_config('memcached', 'base'); @@ -59,6 +87,16 @@ class Cache return 'statusnet:' . $base_key . ':' . $extra; } + /** + * Make a string suitable for use as a key + * + * Useful for turning primary keys of tables into cache keys. + * + * @param string $str string to turn into a key + * + * @return string keyized string + */ + static function keyize($str) { $str = strtolower($str); @@ -66,6 +104,16 @@ class Cache return $str; } + /** + * Get a value associated with a key + * + * The value should have been set previously. + * + * @param string $key Lookup key + * + * @return string retrieved value or null if unfound + */ + function get($key) { $value = null; @@ -83,20 +131,44 @@ class Cache return $value; } + /** + * Set the value associated with a key + * + * @param string $key The key to use for lookups + * @param string $value The value to store + * @param integer $flag Flags to use, mostly ignored + * @param integer $expiry Expiry value, mostly ignored + * + * @return boolean success flag + */ + function set($key, $value, $flag=null, $expiry=null) { $success = false; - if (Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { + if (Event::handle('StartCacheSet', array(&$key, &$value, &$flag, + &$expiry, &$success))) { common_log(LOG_INFO, 'Setting cache value for key ' . $key); + $this->_items[$key] = $value; + $success = true; - Event::handle('EndCacheSet', array($key, $value, $flag, $expiry)); + + Event::handle('EndCacheSet', array($key, $value, $flag, + $expiry)); } return $success; } + /** + * Delete the value associated with a key + * + * @param string $key Key to delete + * + * @return boolean success flag + */ + function delete($key) { $success = false; -- cgit v1.2.3-54-g00ecf From cc5534d180625b3d34f7039c0b95b034f3674a20 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 21:16:59 -1000 Subject: First version of Memcache plugin --- lib/cache.php | 2 +- lib/common.php | 12 ++++ lib/default.php | 7 +- plugins/MemcachePlugin.php | 162 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 177 insertions(+), 6 deletions(-) create mode 100644 plugins/MemcachePlugin.php diff --git a/lib/cache.php b/lib/cache.php index 63f582861..23657bbf3 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -78,7 +78,7 @@ class Cache static function key($extra) { - $base_key = common_config('memcached', 'base'); + $base_key = common_config('cache', 'base'); if (empty($base_key)) { $base_key = common_keyize(common_config('site', 'name')); diff --git a/lib/common.php b/lib/common.php index 7fa1910af..b0e5c4390 100644 --- a/lib/common.php +++ b/lib/common.php @@ -210,6 +210,18 @@ if ($_db_name != 'statusnet' && !array_key_exists('ini_'.$_db_name, $config['db' $config['db']['ini_'.$_db_name] = INSTALLDIR.'/classes/statusnet.ini'; } +// Backwards compatibility + +if (array_key_exists('memcached', $config)) { + if ($config['memcached']['enabled']) { + addPlugin('Memcache', array('servers' => $config['memcached']['server'])); + } + + if (!empty($config['memcached']['base'])) { + $config['cache']['base'] = $config['memcached']['base']; + } +} + function __autoload($cls) { if (file_exists(INSTALLDIR.'/classes/' . $cls . '.php')) { diff --git a/lib/default.php b/lib/default.php index 8a70ed3fa..eea11eb2b 100644 --- a/lib/default.php +++ b/lib/default.php @@ -147,11 +147,8 @@ $default = array('enabled' => true, 'consumer_key' => null, 'consumer_secret' => null), - 'memcached' => - array('enabled' => false, - 'server' => 'localhost', - 'base' => null, - 'port' => 11211), + 'cache' => + array('base' => null), 'ping' => array('notify' => array()), 'inboxes' => diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php new file mode 100644 index 000000000..acbec135e --- /dev/null +++ b/plugins/MemcachePlugin.php @@ -0,0 +1,162 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * A plugin to use memcache for the cache interface + * + * This used to be encoded as config-variable options in the core code; + * it's now broken out to a separate plugin. The same interface can be + * implemented by other plugins. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class MemcachePlugin extends Plugin +{ + private $_conn = null; + public $servers = array('127.0.0.1;11211'); + + /** + * Initialize the plugin + * + * Note that onStartCacheGet() may have been called before this! + * + * @return boolean flag value + */ + + function onInitializePlugin() + { + $this->_ensureConn(); + return true; + } + + /** + * Get a value associated with a key + * + * The value should have been set previously. + * + * @param string &$key in; Lookup key + * @param mixed &$value out; value associated with key + * + * @return boolean hook success + */ + + function onStartCacheGet(&$key, &$value) + { + $this->_ensureConn(); + $value = $this->_conn->get($key); + Event::handle('EndCacheGet', array($key, &$value)); + return false; + } + + /** + * Associate a value with a key + * + * @param string &$key in; Key to use for lookups + * @param mixed &$value in; Value to associate + * @param integer &$flag in; Flag (passed through to Memcache) + * @param integer &$expiry in; Expiry (passed through to Memcache) + * @param boolean &$success out; Whether the set was successful + * + * @return boolean hook success + */ + + function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) + { + $this->_ensureConn(); + $success = $this->_conn->set($key, $value, $flag, $expiry); + Event::handle('EndCacheSet', array($key, $value, $flag, + $expiry)); + return false; + } + + /** + * Delete a value associated with a key + * + * @param string &$key in; Key to lookup + * @param boolean &$success out; whether it worked + * + * @return boolean hook success + */ + + function onStartCacheDelete(&$key, &$success) + { + $this->_ensureConn(); + $success = $this->_conn->delete($key); + Event::handle('EndCacheDelete', array($key)); + return false; + } + + /** + * Ensure that a connection exists + * + * Checks the instance $_conn variable and connects + * if it is empty. + * + * @return void + */ + + private function _ensureConn() + { + if (empty($this->_conn)) { + $this->_conn = new Memcache(); + + if (is_array($this->servers)) { + foreach ($this->servers as $server) { + list($host, $port) = explode(';', $server); + if (empty($port)) { + $port = 11211; + } + + $this->_conn->addServer($host, $port); + } + } else { + $this->_conn->addServer($this->servers); + list($host, $port) = explode(';', $this->servers); + if (empty($port)) { + $port = 11211; + } + $this->_conn->addServer($host, $port); + } + } + } +} + -- cgit v1.2.3-54-g00ecf From d7436c10d0ddc47a1d6fbbfd36a473f3d1a71e8c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 21:34:15 -1000 Subject: Add a caching plugin for APC variable cache --- plugins/APCPlugin.php | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 plugins/APCPlugin.php diff --git a/plugins/APCPlugin.php b/plugins/APCPlugin.php new file mode 100644 index 000000000..18409e29e --- /dev/null +++ b/plugins/APCPlugin.php @@ -0,0 +1,108 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * A plugin to use APC's variable cache for the cache interface + * + * New plugin interface lets us use alternative cache systems + * for caching. This one uses APC's variable cache. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class APCPlugin extends Plugin +{ + /** + * Get a value associated with a key + * + * The value should have been set previously. + * + * @param string &$key in; Lookup key + * @param mixed &$value out; value associated with key + * + * @return boolean hook success + */ + + function onStartCacheGet(&$key, &$value) + { + $value = apc_fetch($key); + Event::handle('EndCacheGet', array($key, &$value)); + return false; + } + + /** + * Associate a value with a key + * + * @param string &$key in; Key to use for lookups + * @param mixed &$value in; Value to associate + * @param integer &$flag in; Flag (passed through to Memcache) + * @param integer &$expiry in; Expiry (passed through to Memcache) + * @param boolean &$success out; Whether the set was successful + * + * @return boolean hook success + */ + + function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) + { + $success = apc_store($key, $value, ((is_null($expiry)) ? 0 : $expiry)); + + Event::handle('EndCacheSet', array($key, $value, $flag, + $expiry)); + return false; + } + + /** + * Delete a value associated with a key + * + * @param string &$key in; Key to lookup + * @param boolean &$success out; whether it worked + * + * @return boolean hook success + */ + + function onStartCacheDelete(&$key, &$success) + { + $success = apc_delete($key); + Event::handle('EndCacheDelete', array($key)); + return false; + } +} + -- cgit v1.2.3-54-g00ecf From 8679bc6c7b1226bab74f96482aac183e57b7a142 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 2 Jan 2010 22:46:50 -1000 Subject: add LGPL --- extlib/lgpl-2.1.txt | 458 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 458 insertions(+) create mode 100644 extlib/lgpl-2.1.txt diff --git a/extlib/lgpl-2.1.txt b/extlib/lgpl-2.1.txt new file mode 100644 index 000000000..3b473dbfc --- /dev/null +++ b/extlib/lgpl-2.1.txt @@ -0,0 +1,458 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS -- cgit v1.2.3-54-g00ecf From b1f11d3527d531d8dbdf833cd65927d6cbd7fd67 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Sun, 3 Jan 2010 11:48:21 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans --- locale/ar/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/arz/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/bg/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/ca/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/cs/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/de/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/el/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/en_GB/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/es/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/fa/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/fi/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/fr/LC_MESSAGES/statusnet.po | 43 +++++++++++---------- locale/ga/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/he/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/hsb/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/ia/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/is/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/it/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/ja/LC_MESSAGES/statusnet.po | 50 ++++++++++++------------ locale/ko/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/mk/LC_MESSAGES/statusnet.po | 58 ++++++++++++++-------------- locale/nb/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/nl/LC_MESSAGES/statusnet.po | 41 ++++++++++---------- locale/nn/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/pl/LC_MESSAGES/statusnet.po | 43 +++++++++++---------- locale/pt/LC_MESSAGES/statusnet.po | 71 +++++++++++++++++------------------ locale/pt_BR/LC_MESSAGES/statusnet.po | 43 +++++++++++---------- locale/ru/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/statusnet.po | 36 +++++++++--------- locale/sv/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/te/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/tr/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/uk/LC_MESSAGES/statusnet.po | 44 +++++++++++----------- locale/vi/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/zh_CN/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- locale/zh_TW/LC_MESSAGES/statusnet.po | 40 ++++++++++---------- 36 files changed, 750 insertions(+), 759 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 73e751837..65615afd1 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:13:46+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:16+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -583,7 +583,7 @@ msgid "Preview" msgstr "عاين" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "احذف" @@ -804,7 +804,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1676,7 +1676,7 @@ msgstr "رسالة شخصية" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "أرسل" @@ -2773,7 +2773,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصية." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظة بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "مكرر" @@ -4808,7 +4808,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "من" @@ -4893,52 +4893,52 @@ msgstr "أرفق" msgid "Attach a file" msgstr "أرفق ملفًا" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "ش" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "ج" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "ر" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "غ" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "في" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "في السياق" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "الإشعار مكرر" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index e1fa2621f..e37d38882 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:13:49+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:19+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -582,7 +582,7 @@ msgid "Preview" msgstr "عاين" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "احذف" @@ -803,7 +803,7 @@ msgstr "أمتأكد من أنك تريد حذف هذا الإشعار؟" msgid "Do not delete this notice" msgstr "لا تحذف هذا الإشعار" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "احذف هذا الإشعار" @@ -1675,7 +1675,7 @@ msgstr "رساله شخصية" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "أرسل" @@ -2772,7 +2772,7 @@ msgstr "لا يمكنك تكرار ملاحظتك الشخصيه." msgid "You already repeated that notice." msgstr "أنت كررت هذه الملاحظه بالفعل." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "مكرر" @@ -4807,7 +4807,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "من" @@ -4892,52 +4892,52 @@ msgstr "أرفق" msgid "Attach a file" msgstr "أرفق ملفًا" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "ش" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "ج" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "ر" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "غ" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "في" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "فى السياق" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "مكرر بواسطة" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "رُد على هذا الإشعار" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "رُد" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "الإشعار مكرر" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 74dece9f0..554dfbd0c 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:13:53+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:23+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -591,7 +591,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Изтриване" @@ -814,7 +814,7 @@ msgstr "Наистина ли искате да изтриете тази бел msgid "Do not delete this notice" msgstr "Да не се изтрива бележката" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Изтриване на бележката" @@ -1731,7 +1731,7 @@ msgstr "Лично съобщение" msgid "Optionally add a personal message to the invitation." msgstr "Може да добавите и лично съобщение към поканата." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Прати" @@ -2895,7 +2895,7 @@ msgstr "Не можете да повтаряте собствена бележ msgid "You already repeated that notice." msgstr "Вече сте повторили тази бележка." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Повторено" @@ -4987,7 +4987,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "от" @@ -5072,52 +5072,52 @@ msgstr "Прикрепяне" msgid "Attach a file" msgstr "Прикрепяне на файл" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "С" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "Ю" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "И" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "З" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "в контекст" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Повторено от" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Отговаряне на тази бележка" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Отговор" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Бележката е повторена." diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index 53e124013..b6e079c61 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:13:56+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:26+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -600,7 +600,7 @@ msgid "Preview" msgstr "Vista prèvia" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Suprimeix" @@ -831,7 +831,7 @@ msgstr "N'estàs segur que vols eliminar aquesta notificació?" msgid "Do not delete this notice" msgstr "No es pot esborrar la notificació." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Eliminar aquesta nota" @@ -1750,7 +1750,7 @@ msgstr "Missatge personal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalment pots afegir un missatge a la invitació." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Envia" @@ -2937,7 +2937,7 @@ msgstr "No pots registrar-te si no estàs d'acord amb la llicència." msgid "You already repeated that notice." msgstr "Ja heu blocat l'usuari." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Repetit" @@ -5040,7 +5040,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "de" @@ -5125,55 +5125,55 @@ msgstr "Adjunta" msgid "Attach a file" msgstr "Adjunta un fitxer" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "No" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Cap contingut!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "S'ha creat" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "respondre a aquesta nota" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Respon" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Notificació publicada" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index a17e00abc..103cf1557 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:13:59+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:29+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -602,7 +602,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Odstranit" @@ -830,7 +830,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Žádné takové oznámení." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Odstranit toto oznámení" @@ -1749,7 +1749,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Odeslat" @@ -2890,7 +2890,7 @@ msgstr "Nemůžete se registrovat, pokud nesouhlasíte s licencí." msgid "You already repeated that notice." msgstr "Již jste přihlášen" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Vytvořit" @@ -5006,7 +5006,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr " od " @@ -5095,55 +5095,55 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Žádný obsah!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Vytvořit" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 #, fuzzy msgid "Reply" msgstr "odpověď" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Sdělení" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index e0db02303..01eeccdf9 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:02+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:32+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -607,7 +607,7 @@ msgid "Preview" msgstr "Vorschau" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Löschen" @@ -831,7 +831,7 @@ msgstr "Bist du sicher, dass du diese Nachricht löschen möchtest?" msgid "Do not delete this notice" msgstr "Diese Nachricht nicht löschen" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Nachricht löschen" @@ -1750,7 +1750,7 @@ msgstr "" "Wenn du möchtest kannst du zu der Einladung eine persönliche Nachricht " "anfügen." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Senden" @@ -2929,7 +2929,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du hast diesen Benutzer bereits blockiert." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Erstellt" @@ -5103,7 +5103,7 @@ msgstr "" "schicken, um sie in eine Konversation zu verwickeln. Andere Leute können Dir " "Nachrichten schicken, die nur Du sehen kannst." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr "von" @@ -5192,54 +5192,54 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "Nein" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "im Zusammenhang" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Erstellt" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Auf diese Nachricht antworten" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Antworten" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Nachricht gelöscht." diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index c3217387d..fb9f0f43e 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:05+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:35+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -592,7 +592,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Διαγραφή" @@ -818,7 +818,7 @@ msgstr "Είσαι σίγουρος ότι θες να διαγράψεις αυ msgid "Do not delete this notice" msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "" @@ -1719,7 +1719,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "" @@ -2858,7 +2858,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Αδυναμία διαγραφής αυτού του μηνύματος." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Δημιουργία" @@ -4906,7 +4906,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "από" @@ -4992,52 +4992,52 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Επαναλαμβάνεται από" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Ρυθμίσεις OpenID" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index f3a4ea2f5..d8f729fcd 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:08+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:38+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -596,7 +596,7 @@ msgid "Preview" msgstr "Preview" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Delete" @@ -822,7 +822,7 @@ msgstr "Are you sure you want to delete this notice?" msgid "Do not delete this notice" msgstr "Do not delete this notice" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Delete this notice" @@ -1747,7 +1747,7 @@ msgstr "Personal message" msgid "Optionally add a personal message to the invitation." msgstr "Optionally add a personal message to the invitation." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Send" @@ -2929,7 +2929,7 @@ msgstr "You can't repeat your own notice." msgid "You already repeated that notice." msgstr "You have already blocked this user." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Created" @@ -5039,7 +5039,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr "from" @@ -5125,54 +5125,54 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "No" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "in context" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Created" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Reply to this notice" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Reply" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Notice deleted." diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index ec21517c5..96c6fac13 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:11+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:41+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -598,7 +598,7 @@ msgid "Preview" msgstr "Vista previa" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Borrar" @@ -828,7 +828,7 @@ msgstr "¿Estás seguro de que quieres eliminar este aviso?" msgid "Do not delete this notice" msgstr "No se puede eliminar este aviso." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Borrar este aviso" @@ -1757,7 +1757,7 @@ msgstr "Mensaje Personal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente añada un mensaje personalizado a su invitación." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Enviar" @@ -2968,7 +2968,7 @@ msgstr "No puedes registrarte si no estás de acuerdo con la licencia." msgid "You already repeated that notice." msgstr "Ya has bloqueado este usuario." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -5099,7 +5099,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "desde" @@ -5186,53 +5186,53 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "S" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "E" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "en" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "en contexto" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Responder este aviso." -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Aviso borrado" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index b4257e14e..3deef9f2e 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:21+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:48+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 @@ -591,7 +591,7 @@ msgid "Preview" msgstr "پیش‌نمایش" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "حذف" @@ -818,7 +818,7 @@ msgstr "آیا اطمینان دارید که می‌خواهید این پیا msgid "Do not delete this notice" msgstr "این پیام را پاک نکن" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "این پیام را پاک کن" @@ -1722,7 +1722,7 @@ msgstr "پیام خصوصی" msgid "Optionally add a personal message to the invitation." msgstr "اگر دوست دارید می‌توانید یک پیام به همراه دعوت نامه ارسال کنید." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "فرستادن" @@ -2840,7 +2840,7 @@ msgstr "شما نمی توانید آگهی خودتان را تکرار کنی msgid "You already repeated that notice." msgstr "شما قبلا آن آگهی را تکرار کردید." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "" @@ -4870,7 +4870,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "از" @@ -4956,52 +4956,52 @@ msgstr "ضمیمه کردن" msgid "Attach a file" msgstr "یک فایل ضمیمه کنید" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "در" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "در زمینه" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "تکرار از" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "به این آگهی جواب دهید" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "جواب دادن" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "آگهی تکرار شد" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index 03efec29f..d65283943 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:17+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:45+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -601,7 +601,7 @@ msgid "Preview" msgstr "Esikatselu" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Poista" @@ -828,7 +828,7 @@ msgstr "Oletko varma että haluat poistaa tämän päivityksen?" msgid "Do not delete this notice" msgstr "Älä poista tätä päivitystä" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Poista tämä päivitys" @@ -1751,7 +1751,7 @@ msgstr "Henkilökohtainen viesti" msgid "Optionally add a personal message to the invitation." msgstr "Voit myös lisätä oman viestisi kutsuun" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Lähetä" @@ -2951,7 +2951,7 @@ msgstr "Et voi rekisteröityä, jos et hyväksy lisenssiehtoja." msgid "You already repeated that notice." msgstr "Sinä olet jo estänyt tämän käyttäjän." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Luotu" @@ -5085,7 +5085,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr " lähteestä " @@ -5171,55 +5171,55 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "Ei" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Ei sisältöä!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Luotu" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Vastaa tähän päivitykseen" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Vastaus" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Päivitys on poistettu." diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 5afa01f2d..1f0cb61fc 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:25+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:51+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -607,7 +607,7 @@ msgid "Preview" msgstr "Aperçu" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Supprimer" @@ -835,7 +835,7 @@ msgstr "Êtes-vous sûr(e) de vouloir supprimer cet avis ?" msgid "Do not delete this notice" msgstr "Ne pas supprimer cet avis" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Supprimer cet avis" @@ -1768,7 +1768,7 @@ msgstr "Message personnel" msgid "Optionally add a personal message to the invitation." msgstr "Ajouter un message personnel à l’invitation (optionnel)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Envoyer" @@ -2972,7 +2972,7 @@ msgstr "Vous ne pouvez pas reprendre votre propre avis." msgid "You already repeated that notice." msgstr "Vous avez déjà repris cet avis." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Repris" @@ -5223,7 +5223,7 @@ msgstr "" "pour démarrer des conversations avec d’autres utilisateurs. Ceux-ci peuvent " "vous envoyer des messages destinés à vous seul(e)." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "de" @@ -5312,53 +5312,52 @@ msgstr "Attacher" msgid "Attach a file" msgstr "Attacher un fichier" -#: lib/noticeform.php:213 -#, fuzzy +#: lib/noticeform.php:212 msgid "Share your location" -msgstr "Partager votre localisation " +msgstr "Partager votre localisation" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u° %2$u' %3$u\" %4$s %5$u° %6$u' %7$u\" %8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "S" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "E" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "O" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "chez" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "dans le contexte" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Repris par" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Répondre à cet avis" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Répondre" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Avis repris" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index ad49c7dc4..70c96bef5 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:28+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:54+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -607,7 +607,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 #, fuzzy msgid "Delete" msgstr "eliminar" @@ -846,7 +846,7 @@ msgstr "Estas seguro que queres eliminar este chío?" msgid "Do not delete this notice" msgstr "Non se pode eliminar este chíos." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 #, fuzzy msgid "Delete this notice" msgstr "Eliminar chío" @@ -1789,7 +1789,7 @@ msgstr "Mensaxe persoal" msgid "Optionally add a personal message to the invitation." msgstr "Opcionalmente engadir unha mensaxe persoal á invitación." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Enviar" @@ -3002,7 +3002,7 @@ msgstr "Non podes rexistrarte se non estas de acordo coa licenza." msgid "You already repeated that notice." msgstr "Xa bloqueaches a este usuario." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Crear" @@ -5263,7 +5263,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr " dende " @@ -5352,57 +5352,57 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "No" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Sen contido!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Crear" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 #, fuzzy msgid "Reply to this notice" msgstr "Non se pode eliminar este chíos." -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 #, fuzzy msgid "Reply" msgstr "contestar" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Chío publicado" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 6ad6d9bb6..2249462bb 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:31+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:37:59+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -600,7 +600,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 #, fuzzy msgid "Delete" msgstr "מחק" @@ -833,7 +833,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "אין הודעה כזו." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "" @@ -1760,7 +1760,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "שלח" @@ -2896,7 +2896,7 @@ msgstr "לא ניתן להירשם ללא הסכמה לרשיון" msgid "You already repeated that notice." msgstr "כבר נכנסת למערכת!" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "צור" @@ -5008,7 +5008,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "" @@ -5096,56 +5096,56 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "לא" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "אין תוכן!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "צור" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 #, fuzzy msgid "Reply" msgstr "הגב" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "הודעות" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index a2f5a9d6e..e2ba2677f 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:34+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:02+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -584,7 +584,7 @@ msgid "Preview" msgstr "Přehlad" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Zničić" @@ -805,7 +805,7 @@ msgstr "Chceš woprawdźe tutu zdźělenku wušmórnyć?" msgid "Do not delete this notice" msgstr "Tutu zdźělenku njewušmórnyć" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Tutu zdźělenku wušmórnyć" @@ -1682,7 +1682,7 @@ msgstr "Wosobinska powěsć" msgid "Optionally add a personal message to the invitation." msgstr "Wosobinsku powěsć po dobrozdaću přeprošenju přidać." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Pósłać" @@ -2774,7 +2774,7 @@ msgstr "Njemóžeš swójsku zdźělenku wospjetować." msgid "You already repeated that notice." msgstr "Sy tutu zdźělenku hižo wospjetował." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Wospjetowany" @@ -4793,7 +4793,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "wot" @@ -4878,52 +4878,52 @@ msgstr "Připowěsnyć" msgid "Attach a file" msgstr "Dataju připowěsnyć" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "S" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "J" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "W" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "Z" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Wospjetowany wot" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Na tutu zdźělenku wotmołwić" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Wotmołwić" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Zdźělenka wospjetowana" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 0d1552ae7..1b1b0810f 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:37+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:05+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -597,7 +597,7 @@ msgid "Preview" msgstr "Previsualisation" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Deler" @@ -823,7 +823,7 @@ msgstr "Es tu secur de voler deler iste nota?" msgid "Do not delete this notice" msgstr "Non deler iste nota" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Deler iste nota" @@ -1746,7 +1746,7 @@ msgstr "Message personal" msgid "Optionally add a personal message to the invitation." msgstr "Si tu vole, adde un message personal al invitation." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Inviar" @@ -2935,7 +2935,7 @@ msgstr "Tu non pote repeter tu proprie nota." msgid "You already repeated that notice." msgstr "Tu ha ja repetite iste nota." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Repetite" @@ -4992,7 +4992,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "" @@ -5077,52 +5077,52 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Repetite per" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Nota delite." diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index fad9f2637..60498bc09 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:41+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:08+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -597,7 +597,7 @@ msgid "Preview" msgstr "Forsýn" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Eyða" @@ -823,7 +823,7 @@ msgstr "Ertu viss um að þú viljir eyða þessu babli?" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Eyða þessu babli" @@ -1738,7 +1738,7 @@ msgstr "Persónuleg skilaboð" msgid "Optionally add a personal message to the invitation." msgstr "Bættu persónulegum skilaboðum við boðskortið ef þú vilt." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Senda" @@ -2928,7 +2928,7 @@ msgstr "Þú getur ekki nýskráð þig nema þú samþykkir leyfið." msgid "You already repeated that notice." msgstr "Þú hefur nú þegar lokað á þennan notanda." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Í sviðsljósinu" @@ -5031,7 +5031,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr "frá" @@ -5118,54 +5118,54 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "Nei" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Í sviðsljósinu" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Svara þessu babli" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Babl sent inn" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 698c7622c..150c769d4 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:44+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:12+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -598,7 +598,7 @@ msgid "Preview" msgstr "Anteprima" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Elimina" @@ -825,7 +825,7 @@ msgstr "Vuoi eliminare questo messaggio?" msgid "Do not delete this notice" msgstr "Non eliminare il messaggio" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Elimina questo messaggio" @@ -1751,7 +1751,7 @@ msgstr "Messaggio personale" msgid "Optionally add a personal message to the invitation." msgstr "Puoi aggiungere un messaggio personale agli inviti." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Invia" @@ -2937,7 +2937,7 @@ msgstr "Non puoi ripetere i tuoi stessi messaggi." msgid "You already repeated that notice." msgstr "Hai già ripetuto quel messaggio." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Ripetuti" @@ -5171,7 +5171,7 @@ msgstr "" "iniziare una conversazione con altri utenti. Altre persone possono mandare " "messaggi riservati solamente a te." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "via" @@ -5259,52 +5259,52 @@ msgstr "Allega" msgid "Attach a file" msgstr "Allega un file" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "S" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "E" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "O" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "presso" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "nel contesto" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Ripetuto da" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Rispondi a questo messaggio" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Rispondi" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Messaggio ripetuto" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 1fcd81324..9f8b7e590 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:47+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:15+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -597,7 +597,7 @@ msgid "Preview" msgstr "プレビュー" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "削除" @@ -818,7 +818,7 @@ msgstr "本当にこのつぶやきを削除しますか?" msgid "Do not delete this notice" msgstr "このつぶやきを削除できません。" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "このつぶやきを削除" @@ -1729,7 +1729,7 @@ msgstr "パーソナルメッセージ" msgid "Optionally add a personal message to the invitation." msgstr "任意に招待にパーソナルメッセージを加えてください。" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "送る" @@ -2277,7 +2277,7 @@ msgstr "バックグラウンドディレクトリ" #: actions/pathsadminpanel.php:293 msgid "SSL" -msgstr "" +msgstr "SSL" #: actions/pathsadminpanel.php:296 actions/siteadminpanel.php:346 msgid "Never" @@ -2301,7 +2301,7 @@ msgstr "SSL 使用時" #: actions/pathsadminpanel.php:308 msgid "SSL Server" -msgstr "" +msgstr "SSLサーバ" #: actions/pathsadminpanel.php:309 msgid "Server to direct SSL requests to" @@ -2910,7 +2910,7 @@ msgstr "自分のつぶやきは繰り返せません。" msgid "You already repeated that notice." msgstr "すでにそのつぶやきを繰り返しています。" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "繰り返された" @@ -5027,7 +5027,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "から " @@ -5070,9 +5070,8 @@ msgid "File could not be moved to destination directory." msgstr "" #: lib/mediafile.php:201 lib/mediafile.php:237 -#, fuzzy msgid "Could not determine file's mime-type!" -msgstr "ユーザを更新できません" +msgstr "ファイルのMIMEタイプを決定できません" #: lib/mediafile.php:270 #, php-format @@ -5113,54 +5112,54 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "コンテンツがありません!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "作成" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "このつぶやきへ返信" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "返信" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "通知" @@ -5453,9 +5452,8 @@ msgid "Unsubscribe" msgstr "フォロー中止" #: lib/userprofile.php:116 -#, fuzzy msgid "Edit Avatar" -msgstr "アバター" +msgstr "アバターを編集する" #: lib/userprofile.php:236 msgid "User actions" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 60cdf0922..9493223b2 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:50+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:18+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -603,7 +603,7 @@ msgid "Preview" msgstr "미리보기" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "삭제" @@ -834,7 +834,7 @@ msgstr "정말로 통지를 삭제하시겠습니까?" msgid "Do not delete this notice" msgstr "이 통지를 지울 수 없습니다." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "이 게시글 삭제하기" @@ -1767,7 +1767,7 @@ msgstr "개인적인 메시지" msgid "Optionally add a personal message to the invitation." msgstr "초대장에 메시지 첨부하기." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "보내기" @@ -2945,7 +2945,7 @@ msgstr "라이선스에 동의하지 않는다면 등록할 수 없습니다." msgid "You already repeated that notice." msgstr "당신은 이미 이 사용자를 차단하고 있습니다." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "생성" @@ -5058,7 +5058,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr "다음에서:" @@ -5144,55 +5144,55 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "아니오" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "내용이 없습니다!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "생성" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "이 게시글에 대해 답장하기" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "답장하기" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "게시글이 등록되었습니다." diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 3e57278af..537618601 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:53+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:21+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -590,7 +590,7 @@ msgid "Preview" msgstr "Преглед" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Бриши" @@ -623,7 +623,7 @@ msgstr "" #: actions/imsettings.php:220 actions/recoverpassword.php:44 #: actions/smssettings.php:248 lib/designsettings.php:304 msgid "Unexpected form submission." -msgstr "Неочекувано испраќање на формулар." +msgstr "Неочекувано поднесување на образец." #: actions/avatarsettings.php:328 msgid "Pick a square area of the image to be your avatar" @@ -764,7 +764,7 @@ msgstr "Корисникот не може да се освежи/" #: actions/confirmaddress.php:126 actions/emailsettings.php:391 #: actions/imsettings.php:363 actions/smssettings.php:382 msgid "Couldn't delete email confirmation." -msgstr "Не може да се креира потврда за е-пошта." +msgstr "Не можев да ја избришам потврдата по е-пошта." #: actions/confirmaddress.php:144 msgid "Confirm Address" @@ -816,7 +816,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Не ја бриши оваа забелешка" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Бриши ја оваа забелешка" @@ -1724,7 +1724,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Испрати" @@ -1797,9 +1797,9 @@ msgid "Could not find membership record." msgstr "" #: actions/leavegroup.php:127 lib/command.php:284 -#, fuzzy, php-format +#, php-format msgid "Could not remove user %s to group %s" -msgstr "OpenID формуларот не може да се креира:%s" +msgstr "Не можев да го отстранам корисникот %s од групата %s" #: actions/leavegroup.php:134 lib/command.php:289 #, php-format @@ -2870,7 +2870,7 @@ msgstr "Не може да се регистрирате ако не ја при msgid "You already repeated that notice." msgstr "Веќе сте пријавени!" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Повторено" @@ -3492,9 +3492,8 @@ msgid "You are not subscribed to that profile." msgstr "Не ни го испративте тој профил." #: actions/subedit.php:83 -#, fuzzy msgid "Could not save subscription." -msgstr "Не може да се креира претплатата" +msgstr "Не можев да ја зачувам претплатата." #: actions/subscribe.php:55 #, fuzzy @@ -4011,9 +4010,8 @@ msgid "Could not create group." msgstr "Информациите за аватарот не може да се снимат" #: classes/User_group.php:409 -#, fuzzy msgid "Could not set group membership." -msgstr "Не може да се креира претплатата" +msgstr "Не можев да назначам членство во групата." #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4447,9 +4445,9 @@ msgid "Login command is disabled" msgstr "" #: lib/command.php:664 -#, fuzzy, php-format +#, php-format msgid "Could not create login token for %s" -msgstr "OpenID формуларот не може да се креира:%s" +msgstr "Не можам да создадам најавен жетон за" #: lib/command.php:669 #, php-format @@ -4971,7 +4969,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "" @@ -5058,53 +5056,53 @@ msgstr "Прикачи" msgid "Attach a file" msgstr "Прикаќи податотека" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Нема содржина!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Повторено од" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Одговор" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Известувања" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 4dbbc0b85..6dfb5813f 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:56+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:24+0000\n" "Language-Team: Norwegian (bokmål)‬\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -602,7 +602,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 #, fuzzy msgid "Delete" msgstr "slett" @@ -831,7 +831,7 @@ msgstr "Er du sikker på at du vil slette denne notisen?" msgid "Do not delete this notice" msgstr "Kan ikke slette notisen." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "" @@ -1734,7 +1734,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Send" @@ -2887,7 +2887,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "Du er allerede logget inn!" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Opprett" @@ -4961,7 +4961,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr "fra" @@ -5048,54 +5048,54 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Opprett" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 #, fuzzy msgid "Reply" msgstr "svar" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Nytt nick" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index 9610ecbbd..e9095b9c8 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:03+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:30+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -606,7 +606,7 @@ msgid "Preview" msgstr "Voorvertoning" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Verwijderen" @@ -835,7 +835,7 @@ msgstr "Weet u zeker dat u deze aankondiging wilt verwijderen?" msgid "Do not delete this notice" msgstr "Deze mededeling niet verwijderen" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Deze mededeling verwijderen" @@ -1772,7 +1772,7 @@ msgstr "Persoonlijk bericht" msgid "Optionally add a personal message to the invitation." msgstr "Persoonlijk bericht bij de uitnodiging (optioneel)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Verzenden" @@ -2967,7 +2967,7 @@ msgstr "U kunt uw eigen mededeling niet herhalen." msgid "You already repeated that notice." msgstr "U hent die mededeling al herhaald." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Herhaald" @@ -5224,7 +5224,7 @@ msgstr "" "U hebt geen privéberichten. U kunt privéberichten verzenden aan andere " "gebruikers. Mensen kunnen u privéberichten sturen die alleen u kunt lezen." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "van" @@ -5315,53 +5315,52 @@ msgstr "Toevoegen" msgid "Attach a file" msgstr "Bestand toevoegen" -#: lib/noticeform.php:213 -#, fuzzy +#: lib/noticeform.php:212 msgid "Share your location" msgstr "Uw locatie bekend maken" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "Z" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "O" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "W" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "op" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "in context" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Herhaald door" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Op deze mededeling antwoorden" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Antwoorden" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Mededeling herhaald" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 32051cfc3..59d3d5f70 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:14:59+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:27+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -601,7 +601,7 @@ msgid "Preview" msgstr "Forhandsvis" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Slett" @@ -833,7 +833,7 @@ msgstr "Sikker på at du vil sletta notisen?" msgid "Do not delete this notice" msgstr "Kan ikkje sletta notisen." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Slett denne notisen" @@ -1769,7 +1769,7 @@ msgstr "Personleg melding" msgid "Optionally add a personal message to the invitation." msgstr "Eventuelt legg til ei personleg melding til invitasjonen." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Send" @@ -2958,7 +2958,7 @@ msgstr "Du kan ikkje registrera deg om du ikkje godtek vilkåra i lisensen." msgid "You already repeated that notice." msgstr "Du har allereie blokkert denne brukaren." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Lag" @@ -5085,7 +5085,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr " frå " @@ -5171,55 +5171,55 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "Nei" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Ingen innhald." -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Lag" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Svar på denne notisen" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Svar" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Melding lagra" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 840bb8398..1b72b8a99 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:06+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:33+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -601,7 +601,7 @@ msgid "Preview" msgstr "Podgląd" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Usuń" @@ -827,7 +827,7 @@ msgstr "Jesteś pewien, że chcesz usunąć ten wpis?" msgid "Do not delete this notice" msgstr "Nie usuwaj tego wpisu" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Usuń ten wpis" @@ -1744,7 +1744,7 @@ msgstr "Osobista wiadomość" msgid "Optionally add a personal message to the invitation." msgstr "Opcjonalnie dodaj osobistą wiadomość do zaproszenia." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Wyślij" @@ -2929,7 +2929,7 @@ msgstr "Nie można powtórzyć własnego wpisu." msgid "You already repeated that notice." msgstr "Już powtórzono ten wpis." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Powtórzono" @@ -5167,7 +5167,7 @@ msgstr "" "rozmowę z innymi użytkownikami. Inni mogą wysyłać ci wiadomości tylko dla " "twoich oczu." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "z" @@ -5253,53 +5253,52 @@ msgstr "Załącz" msgid "Attach a file" msgstr "Załącz plik" -#: lib/noticeform.php:213 -#, fuzzy +#: lib/noticeform.php:212 msgid "Share your location" -msgstr "Podziel się swoim położeniem " +msgstr "Podziel się swoim położeniem" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "Północ" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "Południe" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "Wschód" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "Zachód" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "w" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "w rozmowie" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Powtórzone przez" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Odpowiedz na ten wpis" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Odpowiedz" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Powtórzono wpis" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index abd747118..c8af43117 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:09+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:36+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -594,7 +594,7 @@ msgid "Preview" msgstr "Antevisão" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Apagar" @@ -821,7 +821,7 @@ msgstr "Tem a certeza de que quer apagar esta nota?" msgid "Do not delete this notice" msgstr "Não apagar esta nota" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Apagar esta nota" @@ -1208,7 +1208,7 @@ msgstr "Esta nota já é uma favorita!" #: actions/favor.php:92 lib/disfavorform.php:140 msgid "Disfavor favorite" -msgstr "Desfavorecer favorita" +msgstr "Retirar das favoritas" #: actions/favorited.php:65 lib/popularnoticesection.php:88 #: lib/publicgroupnav.php:93 @@ -1749,7 +1749,7 @@ msgstr "Mensagem pessoal" msgid "Optionally add a personal message to the invitation." msgstr "Pode optar por acrescentar uma mensagem pessoal ao convite" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Enviar" @@ -1864,7 +1864,7 @@ msgstr "Chave inválida ou expirada." #: actions/login.php:147 msgid "Incorrect username or password." -msgstr "Nome de utilizador ou palavra-passe incorrectos." +msgstr "Nome de utilizador ou palavra-chave incorrectos." #: actions/login.php:153 msgid "Error setting user. You are probably not authorized." @@ -1902,7 +1902,7 @@ msgstr "" #: actions/login.php:267 msgid "Lost or forgotten password?" -msgstr "Perdeu ou esqueceu-se da palavra-passe?" +msgstr "Perdeu ou esqueceu-se da palavra-chave?" #: actions/login.php:286 msgid "" @@ -1910,7 +1910,7 @@ msgid "" "changing your settings." msgstr "" "Por razões de segurança, por favor reintroduza o seu nome de utilizador e " -"palavra-passe antes de alterar as suas configurações." +"palavra-chave antes de alterar as configurações." #: actions/login.php:290 #, php-format @@ -2220,7 +2220,7 @@ msgstr "Sem acesso de escrita no directório do fundo: %s" #: actions/pathsadminpanel.php:160 #, php-format msgid "Locales directory not readable: %s" -msgstr "Sem acesso de leitura do directório do locales: %s" +msgstr "Sem acesso de leitura ao directório do locales: %s" #: actions/pathsadminpanel.php:166 msgid "Invalid SSL server. The maximum length is 255 characters." @@ -2425,7 +2425,7 @@ msgstr "Onde está, por ex. \"Cidade, Região, País\"" #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Compartilhar a minha localização presente ao publicar notas" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2485,9 +2485,8 @@ msgid "Couldn't update user for autosubscribe." msgstr "Não foi possível actualizar o utilizador para subscrição automática." #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Não foi possível gravar as categorias." +msgstr "Não foi possível gravar as preferências de localização." #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -2735,7 +2734,7 @@ msgstr "Erro ao configurar utilizador." #: actions/recoverpassword.php:382 msgid "New password successfully saved. You are now logged in." -msgstr "Nova palavra-passe foi guardada com sucesso. Está agora conectado." +msgstr "A palavra-chave nova foi gravada com sucesso. Iniciou uma sessão." #: actions/register.php:85 actions/register.php:189 actions/register.php:404 msgid "Sorry, only invited people can register." @@ -2941,7 +2940,7 @@ msgstr "Não pode repetir a sua própria nota." msgid "You already repeated that notice." msgstr "Já repetiu essa nota." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Repetida" @@ -4127,7 +4126,7 @@ msgstr "Carregar um avatar" #: lib/accountsettingsaction.php:116 msgid "Change your password" -msgstr "Modificar a sua palavra-passe" +msgstr "Modificar a sua palavra-chave" #: lib/accountsettingsaction.php:120 msgid "Change email handling" @@ -4318,11 +4317,11 @@ msgstr "Paginação" #: lib/action.php:1108 msgid "After" -msgstr "Depois" +msgstr "Posteriores" #: lib/action.php:1116 msgid "Before" -msgstr "Antes" +msgstr "Anteriores" #: lib/action.php:1164 msgid "There was a problem with your session token." @@ -4706,15 +4705,15 @@ msgstr "Predefinições do design repostas" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "Desfavorecer esta nota" +msgstr "Retirar esta nota das favoritas" #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" -msgstr "Favorecer esta nota" +msgstr "Eleger esta nota como favorita" #: lib/favorform.php:140 msgid "Favor" -msgstr "Favorecer" +msgstr "Eleger como favorita" #: lib/feed.php:85 msgid "RSS 1.0" @@ -5169,7 +5168,7 @@ msgstr "" "conversa com outros utilizadores. Outros podem enviar-lhe mensagens, a que " "só você terá acesso." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "de" @@ -5258,52 +5257,52 @@ msgstr "Anexar" msgid "Attach a file" msgstr "Anexar um ficheiro" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" -msgstr "" +msgstr "Compartilhe a sua localização" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "S" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "E" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "O" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "coords." -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "em contexto" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Responder a esta nota" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Nota repetida" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index ce3a6b438..4ebebf074 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:12+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:40+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -601,7 +601,7 @@ msgid "Preview" msgstr "Visualização" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Excluir" @@ -829,7 +829,7 @@ msgstr "Tem certeza que deseja excluir esta mensagem?" msgid "Do not delete this notice" msgstr "Não excluir esta mensagem." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Excluir esta mensagem" @@ -1760,7 +1760,7 @@ msgstr "Mensagem pessoal" msgid "Optionally add a personal message to the invitation." msgstr "Você pode, opcionalmente, adicionar uma mensagem pessoal ao convite." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Enviar" @@ -2956,7 +2956,7 @@ msgstr "Você não pode repetir sua própria mensagem." msgid "You already repeated that notice." msgstr "Você já repetiu essa mensagem." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Repetida" @@ -5189,7 +5189,7 @@ msgstr "" "privadas para envolver outras pessoas em uma conversa. Você também pode " "receber mensagens privadas." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "de" @@ -5280,53 +5280,52 @@ msgstr "Anexo" msgid "Attach a file" msgstr "Anexar um arquivo" -#: lib/noticeform.php:213 -#, fuzzy +#: lib/noticeform.php:212 msgid "Share your location" -msgstr "Indique a sua localização " +msgstr "Indique a sua localização" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "S" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "L" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "O" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "em" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "no contexto" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Repetida por" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Responder a esta mensagem" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Responder" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Mensagem repetida" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index 283fabb11..de2737689 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:18+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:45+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -601,7 +601,7 @@ msgid "Preview" msgstr "Просмотр" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Удалить" @@ -827,7 +827,7 @@ msgstr "Вы уверены, что хотите удалить эту запи msgid "Do not delete this notice" msgstr "Не удалять эту запись" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Удалить эту запись" @@ -1760,7 +1760,7 @@ msgstr "Личное сообщение" msgid "Optionally add a personal message to the invitation." msgstr "Можно добавить к приглашению личное сообщение." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "ОК" @@ -2943,7 +2943,7 @@ msgstr "Вы не можете повторить собственную зап msgid "You already repeated that notice." msgstr "Вы уже повторили эту запись." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Повторено" @@ -5179,7 +5179,7 @@ msgstr "" "вовлечения других пользователей в разговор. Сообщения, получаемые от других " "людей, видите только вы." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "от " @@ -5267,52 +5267,52 @@ msgstr "Прикрепить" msgid "Attach a file" msgstr "Прикрепить файл" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\" %4$s %5$u°%6$u'%7$u\" %8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "с. ш." -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "ю. ш." -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "в. д." -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "з. д." -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "на" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "в контексте" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Повторено" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Ответить на эту запись" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Ответить" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Запись повторена" diff --git a/locale/statusnet.po b/locale/statusnet.po index ab0622dfc..38db608dc 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -579,7 +579,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "" @@ -800,7 +800,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "" @@ -1672,7 +1672,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "" @@ -2763,7 +2763,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "" @@ -4774,7 +4774,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "" @@ -4859,52 +4859,52 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index ffab35712..64253a52e 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:21+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:48+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -593,7 +593,7 @@ msgid "Preview" msgstr "Förhandsgranska" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Ta bort" @@ -820,7 +820,7 @@ msgstr "Är du säker på att du vill ta bort denna notis?" msgid "Do not delete this notice" msgstr "Ta inte bort denna notis" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Ta bort denna notis" @@ -1741,7 +1741,7 @@ msgstr "Personligt meddelande" msgid "Optionally add a personal message to the invitation." msgstr "Om du vill, skriv ett personligt meddelande till inbjudan." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Skicka" @@ -2888,7 +2888,7 @@ msgstr "Du kan inte upprepa din egna notis." msgid "You already repeated that notice." msgstr "Du har redan upprepat denna notis." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Upprepad" @@ -4992,7 +4992,7 @@ msgstr "" "engagera andra användare i konversationen. Folk kan skicka meddelanden till " "dig som bara du ser." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "från" @@ -5081,52 +5081,52 @@ msgstr "Bifoga" msgid "Attach a file" msgstr "Bifoga en fil" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "N" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "S" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "Ö" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "V" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "på" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "i sammanhang" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Upprepad av" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Svara på detta inlägg" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Svara" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Notis upprepad" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index fd72f7155..ffbf5a990 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:24+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:51+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -590,7 +590,7 @@ msgid "Preview" msgstr "మునుజూపు" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "తొలగించు" @@ -814,7 +814,7 @@ msgstr "మీరు నిజంగానే ఈ నోటీసుని త msgid "Do not delete this notice" msgstr "ఈ నోటీసుని తొలగించకు" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "ఈ నోటీసుని తొలగించు" @@ -1693,7 +1693,7 @@ msgstr "వ్యక్తిగత సందేశం" msgid "Optionally add a personal message to the invitation." msgstr "ఐచ్ఛికంగా ఆహ్వానానికి వ్యక్తిగత సందేశం చేర్చండి." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "పంపించు" @@ -2814,7 +2814,7 @@ msgstr "ఈ లైసెన్సుకి అంగీకరించకపో msgid "You already repeated that notice." msgstr "మీరు ఇప్పటికే ఆ వాడుకరిని నిరోధించారు." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "సృష్టితం" @@ -4882,7 +4882,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "నుండి" @@ -4969,53 +4969,53 @@ msgstr "జోడించు" msgid "Attach a file" msgstr "ఒక ఫైలుని జోడించు" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "ఉ" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "ద" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "తూ" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "ప" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "సందర్భంలో" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "సృష్టితం" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "ఈ నోటీసుపై స్పందించండి" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "స్పందించండి" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "నోటీసుని తొలగించాం." diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 5c3d40656..238252591 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:27+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:54+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -605,7 +605,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "" @@ -837,7 +837,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "Böyle bir durum mesajı yok." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "" @@ -1762,7 +1762,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Gönder" @@ -2908,7 +2908,7 @@ msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." msgid "You already repeated that notice." msgstr "Zaten giriş yapmış durumdasıznız!" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Yarat" @@ -5017,7 +5017,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "" @@ -5105,55 +5105,55 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "İçerik yok!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Yarat" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 #, fuzzy msgid "Reply" msgstr "cevapla" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Durum mesajları" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index 8ad78f841..df464a5e4 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:30+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:38:57+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -598,7 +598,7 @@ msgid "Preview" msgstr "Перегляд" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "Видалити" @@ -823,7 +823,7 @@ msgstr "Ви впевненні, що бажаєте видалити цей д msgid "Do not delete this notice" msgstr "Не видаляти цей допис" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "Видалити допис" @@ -1746,7 +1746,7 @@ msgstr "Особисті повідомлення" msgid "Optionally add a personal message to the invitation." msgstr "Можна додати персональне повідомлення до запрошення (опціонально)." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Так!" @@ -2426,7 +2426,7 @@ msgstr "Де Ви живете, штибу \"Місто, область (рег #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "Показувати мою поточну локацію при надсиланні дописів" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2936,7 +2936,7 @@ msgstr "Ви не можете вторувати своїм власним до msgid "You already repeated that notice." msgstr "Ви вже вторували цьому допису." -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 msgid "Repeated" msgstr "Вторування" @@ -5166,7 +5166,7 @@ msgstr "" "повідомлення аби долучити користувачів до розмови. Такі повідомлення бачите " "лише Ви." -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "від" @@ -5253,52 +5253,52 @@ msgstr "Вкласти" msgid "Attach a file" msgstr "Вкласти файл" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" -msgstr "" +msgstr "Показувати місцезнаходження" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "Півн." -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "Півд." -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "Сх." -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "Зах." -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "в" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 msgid "in context" msgstr "в контексті" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 msgid "Repeated by" msgstr "Вторуванні" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "Відповісти на цей допис" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Відповісти" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 msgid "Notice repeated" msgstr "Допис вторували" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 826dc5882..916264939 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:33+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:39:00+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -609,7 +609,7 @@ msgid "Preview" msgstr "Xem trước" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 #, fuzzy msgid "Delete" msgstr "Xóa tin nhắn" @@ -843,7 +843,7 @@ msgstr "Bạn có chắc chắn là muốn xóa tin nhắn này không?" msgid "Do not delete this notice" msgstr "Không thể xóa tin nhắn này." -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 #, fuzzy msgid "Delete this notice" msgstr "Xóa tin nhắn" @@ -1817,7 +1817,7 @@ msgstr "Tin nhắn cá nhân" msgid "Optionally add a personal message to the invitation." msgstr "Không bắt buộc phải thêm thông điệp vào thư mời." -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "Gửi" @@ -3027,7 +3027,7 @@ msgstr "Bạn không thể đăng ký nếu không đồng ý các điều kho msgid "You already repeated that notice." msgstr "Bạn đã theo những người này:" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "Tạo" @@ -5241,7 +5241,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr " từ " @@ -5330,56 +5330,56 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "Không" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "Không có nội dung!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "Tạo" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 #, fuzzy msgid "Reply to this notice" msgstr "Trả lời tin nhắn này" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "Trả lời" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "Tin đã gửi" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index d13d22e33..c27fbe4eb 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:36+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:39:03+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -604,7 +604,7 @@ msgid "Preview" msgstr "预览" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 #, fuzzy msgid "Delete" msgstr "删除" @@ -839,7 +839,7 @@ msgstr "确定要删除这条消息吗?" msgid "Do not delete this notice" msgstr "无法删除通告。" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 #, fuzzy msgid "Delete this notice" msgstr "删除通告" @@ -1776,7 +1776,7 @@ msgstr "个人消息" msgid "Optionally add a personal message to the invitation." msgstr "在邀请中加几句话(可选)。" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "发送" @@ -2952,7 +2952,7 @@ msgstr "您必须同意此授权方可注册。" msgid "You already repeated that notice." msgstr "您已成功阻止该用户:" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "创建" @@ -5102,7 +5102,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 #, fuzzy msgid "from" msgstr " 从 " @@ -5191,57 +5191,57 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 #, fuzzy msgid "N" msgstr "否" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "没有内容!" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "创建" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 #, fuzzy msgid "Reply to this notice" msgstr "无法删除通告。" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 #, fuzzy msgid "Reply" msgstr "回复" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "消息已发布。" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index bba05320e..59e3a3c18 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-01 18:13+0000\n" -"PO-Revision-Date: 2010-01-01 18:15:39+0000\n" +"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"PO-Revision-Date: 2010-01-03 10:39:06+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60542); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -598,7 +598,7 @@ msgid "Preview" msgstr "" #: actions/avatarsettings.php:149 lib/deleteuserform.php:66 -#: lib/noticelist.php:603 +#: lib/noticelist.php:611 msgid "Delete" msgstr "" @@ -830,7 +830,7 @@ msgstr "" msgid "Do not delete this notice" msgstr "無此通知" -#: actions/deletenotice.php:146 lib/noticelist.php:603 +#: actions/deletenotice.php:146 lib/noticelist.php:611 msgid "Delete this notice" msgstr "" @@ -1736,7 +1736,7 @@ msgstr "" msgid "Optionally add a personal message to the invitation." msgstr "" -#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:233 +#: actions/invite.php:197 lib/messageform.php:178 lib/noticeform.php:232 msgid "Send" msgstr "" @@ -2846,7 +2846,7 @@ msgstr "" msgid "You already repeated that notice." msgstr "無此使用者" -#: actions/repeat.php:114 lib/noticelist.php:621 +#: actions/repeat.php:114 lib/noticelist.php:629 #, fuzzy msgid "Repeated" msgstr "新增" @@ -4926,7 +4926,7 @@ msgid "" "users in conversation. People can send you messages for your eyes only." msgstr "" -#: lib/mailbox.php:227 lib/noticelist.php:469 +#: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" msgstr "" @@ -5014,54 +5014,54 @@ msgstr "" msgid "Attach a file" msgstr "" -#: lib/noticeform.php:213 +#: lib/noticeform.php:212 msgid "Share your location" msgstr "" -#: lib/noticelist.php:420 +#: lib/noticelist.php:428 #, php-format msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "N" msgstr "" -#: lib/noticelist.php:421 +#: lib/noticelist.php:429 msgid "S" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "E" msgstr "" -#: lib/noticelist.php:422 +#: lib/noticelist.php:430 msgid "W" msgstr "" -#: lib/noticelist.php:428 +#: lib/noticelist.php:436 msgid "at" msgstr "" -#: lib/noticelist.php:523 +#: lib/noticelist.php:531 #, fuzzy msgid "in context" msgstr "無內容" -#: lib/noticelist.php:548 +#: lib/noticelist.php:556 #, fuzzy msgid "Repeated by" msgstr "新增" -#: lib/noticelist.php:577 +#: lib/noticelist.php:585 msgid "Reply to this notice" msgstr "" -#: lib/noticelist.php:578 +#: lib/noticelist.php:586 msgid "Reply" msgstr "" -#: lib/noticelist.php:620 +#: lib/noticelist.php:628 #, fuzzy msgid "Notice repeated" msgstr "更新個人圖像" -- cgit v1.2.3-54-g00ecf From 249b2632f2c53ed148480e272b72b6794bdf7d14 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 06:38:15 -1000 Subject: First version of cache plugin for XCache variable cache --- plugins/XCachePlugin.php | 112 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 plugins/XCachePlugin.php diff --git a/plugins/XCachePlugin.php b/plugins/XCachePlugin.php new file mode 100644 index 000000000..8011e659a --- /dev/null +++ b/plugins/XCachePlugin.php @@ -0,0 +1,112 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * A plugin to use XCache's variable cache for the cache interface + * + * New plugin interface lets us use alternative cache systems + * for caching. This one uses XCache's variable cache. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class XCachePlugin extends Plugin +{ + /** + * Get a value associated with a key + * + * The value should have been set previously. + * + * @param string &$key in; Lookup key + * @param mixed &$value out; value associated with key + * + * @return boolean hook success + */ + + function onStartCacheGet(&$key, &$value) + { + $value = xcache_get($key); + if (!is_null($value)) { + $value = unserialize($value); + } + Event::handle('EndCacheGet', array($key, &$value)); + return false; + } + + /** + * Associate a value with a key + * + * @param string &$key in; Key to use for lookups + * @param mixed &$value in; Value to associate + * @param integer &$flag in; Flag (passed through to Memcache) + * @param integer &$expiry in; Expiry (passed through to Memcache) + * @param boolean &$success out; Whether the set was successful + * + * @return boolean hook success + */ + + function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) + { + $success = xcache_set($key, serialize($value), + (is_null($expiry) ? 0 : $expiry)); + + Event::handle('EndCacheSet', array($key, $value, $flag, + $expiry)); + return false; + } + + /** + * Delete a value associated with a key + * + * @param string &$key in; Key to lookup + * @param boolean &$success out; whether it worked + * + * @return boolean hook success + */ + + function onStartCacheDelete(&$key, &$success) + { + $success = xcache_unset($key); + Event::handle('EndCacheDelete', array($key)); + return false; + } +} + -- cgit v1.2.3-54-g00ecf From ec380887f71a1eadc75bad0289f9a0dbee7f2913 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 10:52:24 -1000 Subject: use keys() instead of keyTypes() so plugin data object work --- classes/Memcached_DataObject.php | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 1608720d1..b72c3d7b6 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -139,16 +139,6 @@ class Memcached_DataObject extends DB_DataObject } } - function keyTypes() - { - global $_DB_DATAOBJECT; - if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) { - $this->databaseStructure(); - - } - return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"]; - } - function encache() { $c = $this->memcache(); @@ -157,7 +147,7 @@ class Memcached_DataObject extends DB_DataObject } else { $pkey = array(); $pval = array(); - $types = $this->keyTypes(); + $types = $this->keys(); ksort($types); foreach ($types as $key => $type) { if ($type == 'K') { @@ -182,7 +172,7 @@ class Memcached_DataObject extends DB_DataObject } else { $pkey = array(); $pval = array(); - $types = $this->keyTypes(); + $types = $this->keys(); ksort($types); foreach ($types as $key => $type) { if ($type == 'K') { -- cgit v1.2.3-54-g00ecf From 1348c6e81995d9cae5ad4a4803723750ecb462c2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:02:36 -1000 Subject: Expand SamplePlugin to show other best practices I modified the SamplePlugin to show how to do some real processing, adding a data class and an action class and modifying the main menu to link to the new action. I added documentation comments to all the methods and made sure the modules were PHPCS-clean. --- plugins/Sample/User_greeting_count.php | 169 +++++++++++++++++++++++++++++++++ plugins/Sample/hello.php | 166 ++++++++++++++++++++++++++++++++ 2 files changed, 335 insertions(+) create mode 100644 plugins/Sample/User_greeting_count.php create mode 100644 plugins/Sample/hello.php diff --git a/plugins/Sample/User_greeting_count.php b/plugins/Sample/User_greeting_count.php new file mode 100644 index 000000000..77fb9afeb --- /dev/null +++ b/plugins/Sample/User_greeting_count.php @@ -0,0 +1,169 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +/** + * Data class for counting greetings + * + * We use the DB_DataObject framework for data classes in StatusNet. Each + * table maps to a particular data class, making it easier to manipulate + * data. + * + * Data classes should extend Memcached_DataObject, the (slightly misnamed) + * extension of DB_DataObject that provides caching, internationalization, + * and other bits of good functionality to StatusNet-specific data classes. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class User_greeting_count extends Memcached_DataObject +{ + public $__table = 'user_greeting_count'; // table name + public $user_id; // int(4) primary_key not_null + public $greeting_count; // int(4) + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return User_greeting_count object found, or null for no hits + * + */ + + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('User_greeting_count', $k, $v); + } + + /** + * return table definition for DB_DataObject + * + * DB_DataObject needs to know something about the table to manipulate + * instances. This method provides all the DB_DataObject needs to know. + * + * @return array array of column definitions + */ + + function table() + { + return array('user_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'greeting_count' => DB_DATAOBJECT_INT); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has; this function + * defines them. + * + * @return array key definitions + */ + + function keys() + { + return array('user_id' => 'K'); + } + + /** + * Magic formula for non-autoincrementing integer primary keys + * + * If a table has a single integer column as its primary key, DB_DataObject + * assumes that the column is auto-incrementing and makes a sequence table + * to do this incrementation. Since we don't need this for our class, we + * overload this method and return the magic formula that DB_DataObject needs. + * + * @return array magic three-false array that stops auto-incrementing. + */ + + function sequenceKey() + { + return array(false, false, false); + } + + /** + * Increment a user's greeting count and return instance + * + * This method handles the ins and outs of creating a new greeting_count for a + * user or fetching the existing greeting count and incrementing its value. + * + * @param integer $user_id ID of the user to get a count for + * + * @return User_greeting_count instance for this user, with count already incremented. + */ + + static function inc($user_id) + { + $gc = User_greeting_count::staticGet('user_id', $user_id); + + if (empty($gc)) { + + $gc = new User_greeting_count(); + + $gc->user_id = $user_id; + $gc->greeting_count = 1; + + $result = $gc->insert(); + + if (!$result) { + throw Exception(sprintf(_m("Could not save new greeting count for %d"), + $user_id)); + } + + } else { + + $orig = clone($gc); + + $gc->greeting_count++; + + $result = $gc->update($orig); + + if (!$result) { + throw Exception(sprintf(_m("Could not increment greeting count for %d"), + $user_id)); + } + } + + return $gc; + } +} diff --git a/plugins/Sample/hello.php b/plugins/Sample/hello.php new file mode 100644 index 000000000..0cfd8a1c3 --- /dev/null +++ b/plugins/Sample/hello.php @@ -0,0 +1,166 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Give a warm greeting to our friendly user + * + * This sample action shows some basic ways of doing output in an action + * class. + * + * Action classes have several output methods that they override from + * the parent class. + * + * @category Sample + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ + +class HelloAction extends Action +{ + var $user = null; + var $gc = null; + + /** + * Take arguments for running + * + * This method is called first, and it lets the action class get + * all its arguments and validate them. It's also the time + * to fetch any relevant data from the database. + * + * Action classes should run parent::prepare($args) as the first + * line of this method to make sure the default argument-processing + * happens. + * + * @param array $args $_REQUEST args + * + * @return boolean success flag + */ + + function prepare($args) + { + parent::prepare($args); + + $this->user = common_current_user(); + + if (!empty($this->user)) { + $this->gc = User_greeting_count::inc($this->user->id); + } + + return true; + } + + /** + * Handle request + * + * This is the main method for handling a request. Note that + * most preparation should be done in the prepare() method; + * by the time handle() is called the action should be + * more or less ready to go. + * + * @param array $args $_REQUEST args; handled in prepare() + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + + $this->showPage(); + } + + /** + * Title of this page + * + * Override this method to show a custom title. + * + * @return string Title of the page + */ + + function title() + { + if (empty($this->user)) { + return _m('Hello'); + } else { + return sprintf(_m('Hello, %s'), $this->user->nickname); + } + } + + /** + * show content in the content area + * + * The default StatusNet page has a lot of decorations: menus, + * logos, tabs, all that jazz. This method is used to show + * content in the content area of the page; it's the main + * thing you want to overload. + * + * @return void + */ + + function showContent() + { + if (empty($this->user)) { + $this->element('p', array('class' => 'greeting'), + _m('Hello, stranger!')); + } else { + $this->element('p', array('class' => 'greeting'), + sprintf(_m('Hello, %s'), $this->user->nickname)); + $this->element('p', array('class' => 'greeting_count'), + sprintf(_m('I have greeted you %d time(s).'), + $this->gc->greeting_count)); + } + } + + /** + * Return true if read only. + * + * Some actions only read from the database; others read and write. + * The simple database load-balancer built into StatusNet will + * direct read-only actions to database mirrors (if they are configured), + * and read-write actions to the master database. + * + * This defaults to false to avoid data integrity issues, but you + * should make sure to overload it for performance gains. + * + * @param array $args other arguments, if RO/RW status depends on them. + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + return false; + } +} -- cgit v1.2.3-54-g00ecf From e9407902412e060cc88176acf108a446d3cd66d4 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:18:26 -1000 Subject: update SamplePlugin.php also --- plugins/Sample/SamplePlugin.php | 249 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 230 insertions(+), 19 deletions(-) diff --git a/plugins/Sample/SamplePlugin.php b/plugins/Sample/SamplePlugin.php index 6e361aafb..7ea956af6 100644 --- a/plugins/Sample/SamplePlugin.php +++ b/plugins/Sample/SamplePlugin.php @@ -1,8 +1,12 @@ . + * + * @category Sample + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ */ -/** - * @package SamplePlugin - * @maintainer Your Name - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { +if (!defined('STATUSNET')) { // This check helps protect against security problems; // your code file can't be executed directly from the web. exit(1); } +/** + * Sample plugin main class + * + * Each plugin requires a main class to interact with the StatusNet system. + * + * The main class usually extends the Plugin class that comes with StatusNet. + * + * The class has standard-named methods that will be called when certain events + * happen in the code base. These methods have names like 'onX' where X is an + * event name (see EVENTS.txt for the list of available events). Event handlers + * have pre-defined arguments, based on which event they're handling. A typical + * event handler: + * + * function onSomeEvent($paramA, &$paramB) + * { + * if ($paramA == 'jed') { + * throw new Exception(sprintf(_m("Invalid parameter %s"), $paramA)); + * } + * $paramB = 'spock'; + * return true; + * } + * + * Event handlers must return a boolean value. If they return false, all other + * event handlers for this event (in other plugins) will be skipped, and in some + * cases the default processing for that event would be skipped. This is great for + * replacing the default action of an event. + * + * If the handler returns true, processing of other event handlers and the default + * processing will continue. This is great for extending existing functionality. + * + * If the handler throws an exception, processing will stop, and the exception's + * error will be shown to the user. + * + * To install a plugin (like this one), site admins add the following code to + * their config.php file: + * + * addPlugin('Sample'); + * + * Plugins must be installed in one of the following directories: + * + * local/plugins/{$pluginclass}.php + * local/plugins/{$name}/{$pluginclass}.php + * local/{$pluginclass}.php + * local/{$name}/{$pluginclass}.php + * plugins/{$pluginclass}.php + * plugins/{$name}/{$pluginclass}.php + * + * Here, {$name} is the name of the plugin, like 'Sample', and {$pluginclass} is + * the name of the main class, like 'SamplePlugin'. Plugins that are part of the + * main StatusNet distribution go in 'plugins' and third-party or local ones go + * in 'local'. + * + * Simple plugins can be implemented as a single module. Others are more complex + * and require additional modules; these should use their own directory, like + * 'local/plugins/{$name}/'. All files related to the plugin, including images, + * JavaScript, CSS, external libraries or PHP modules should go in the plugin + * directory. + * + * @category Sample + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + class SamplePlugin extends Plugin { - function onInitializePlugin() + /** + * Plugins are configured using public instance attributes. To set + * their values, site administrators use this syntax: + * + * addPlugin('Sample', array('attr1' => 'foo', 'attr2' => 'bar')); + * + * The same plugin class can be initialized multiple times with different + * arguments: + * + * addPlugin('EmailNotify', array('sendTo' => 'evan@status.net')); + * addPlugin('EmailNotify', array('sendTo' => 'brionv@status.net')); + * + */ + + public $attr1 = null; + public $attr2 = null; + + /** + * Initializer for this plugin + * + * Plugins overload this method to do any initialization they need, + * like connecting to remote servers or creating paths or so on. + * + * @return boolean hook value; true means continue processing, false means stop. + */ + + function initialize() { - // Event handlers normally return true to indicate that all is well. - // - // Returning false will cancel further processing of any other - // plugins or core code hooking the same event. return true; } /** - * Hook for RouterInitialized event. + * Cleanup for this plugin + * + * Plugins overload this method to do any cleanup they need, + * like disconnecting from remote servers or deleting temp files or so on. + * + * @return boolean hook value; true means continue processing, false means stop. + */ + + function cleanup() + { + return true; + } + + /** + * Database schema setup + * + * Plugins can add their own tables to the StatusNet database. Plugins + * should use StatusNet's schema interface to add or delete tables. The + * ensureTable() method provides an easy way to ensure a table's structure + * and availability. + * + * By default, the schema is checked every time StatusNet is run (say, when + * a Web page is hit). Admins can configure their systems to only check the + * schema when the checkschema.php script is run, greatly improving performance. + * However, they need to remember to run that script after installing or + * upgrading a plugin! + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + + function onCheckSchema() + { + $schema = Schema::get(); + + // For storing user-submitted flags on profiles + + $schema->ensureTable('user_greeting_count', + array(new ColumnDef('user_id', 'integer', null, + true, 'PRI'), + new ColumnDef('greeting_count', 'integer'))); + + return true; + } + + /** + * Load related modules when needed + * + * Most non-trivial plugins will require extra modules to do their work. Typically + * these include data classes, action classes, widget classes, or external libraries. + * + * This method receives a class name and loads the PHP file related to that class. By + * tradition, action classes typically have files named for the action, all lower-case. + * Data classes are in files with the data class name, initial letter capitalized. + * + * Note that this method will be called for *all* overloaded classes, not just ones + * in this plugin! So, make sure to return true by default to let other plugins, and + * the core code, get a chance. + * + * @param string $cls Name of the class to be loaded + * + * @return boolean hook value; true means continue processing, false means stop. + */ + + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) + { + case 'HelloAction': + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + case 'User_greeting_count': + include_once $dir . '/'.$cls.'.php'; + return false; + default: + return true; + } + } + + /** + * Map URLs to actions + * + * This event handler lets the plugin map URLs on the site to actions (and + * thus an action handler class). Note that the action handler class for an + * action will be named 'FoobarAction', where action = 'foobar'. The class + * must be loaded in the onAutoload() method. * * @param Net_URL_Mapper $m path-to-action mapper - * @return boolean hook return + * + * @return boolean hook value; true means continue processing, false means stop. */ function onRouterInitialized($m) { - $m->connect(':nickname/samples', - array('action' => 'showsamples'), - array('feed' => '[A-Za-z0-9_-]+')); - $m->connect('settings/sample', - array('action' => 'samplesettings')); + $m->connect('main/hello', + array('action' => 'hello')); + return true; + } + + /** + * Modify the default menu to link to our custom action + * + * Using event handlers, it's possible to modify the default UI for pages + * almost without limit. In this method, we add a menu item to the default + * primary menu for the interface to link to our action. + * + * The Action class provides a rich set of events to hook, as well as output + * methods. + * + * @param Action $action The current action handler. Use this to + * do any output. + * + * @return boolean hook value; true means continue processing, false means stop. + * + * @see Action + */ + + function onEndPrimaryNav($action) + { + // common_local_url() gets the correct URL for the action name + // we provide + + $action->menuItem(common_local_url('hello'), + _m('Hello'), _m('A warm greeting'), false, 'nav_hello'); return true; } } -- cgit v1.2.3-54-g00ecf From d5fb88e1c0a617423a6fd9f9a23141c36245f38c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:24:05 -1000 Subject: Revert "use keys() instead of keyTypes() so plugin data object work" This reverts commit ec380887f71a1eadc75bad0289f9a0dbee7f2913. --- classes/Memcached_DataObject.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index b72c3d7b6..1608720d1 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -139,6 +139,16 @@ class Memcached_DataObject extends DB_DataObject } } + function keyTypes() + { + global $_DB_DATAOBJECT; + if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) { + $this->databaseStructure(); + + } + return $_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"]; + } + function encache() { $c = $this->memcache(); @@ -147,7 +157,7 @@ class Memcached_DataObject extends DB_DataObject } else { $pkey = array(); $pval = array(); - $types = $this->keys(); + $types = $this->keyTypes(); ksort($types); foreach ($types as $key => $type) { if ($type == 'K') { @@ -172,7 +182,7 @@ class Memcached_DataObject extends DB_DataObject } else { $pkey = array(); $pval = array(); - $types = $this->keys(); + $types = $this->keyTypes(); ksort($types); foreach ($types as $key => $type) { if ($type == 'K') { -- cgit v1.2.3-54-g00ecf From eebc5d0d595e20f1ef9f8e7552f1067b7c58f53a Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:27:09 -1000 Subject: add keyTypes() for User_greeting_count --- plugins/Sample/User_greeting_count.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/Sample/User_greeting_count.php b/plugins/Sample/User_greeting_count.php index 77fb9afeb..d9a59770d 100644 --- a/plugins/Sample/User_greeting_count.php +++ b/plugins/Sample/User_greeting_count.php @@ -105,6 +105,20 @@ class User_greeting_count extends Memcached_DataObject return array('user_id' => 'K'); } + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. + * + * @return array key definitions + */ + + function keyTypes() + { + return $this->keys(); + } + /** * Magic formula for non-autoincrementing integer primary keys * -- cgit v1.2.3-54-g00ecf From 07236058f41e87e1710eb4c4f4248ec26bff3e39 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:27:36 -1000 Subject: don't try to set an expiry for XCache --- plugins/XCachePlugin.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/XCachePlugin.php b/plugins/XCachePlugin.php index 8011e659a..8eed12cbc 100644 --- a/plugins/XCachePlugin.php +++ b/plugins/XCachePlugin.php @@ -85,8 +85,7 @@ class XCachePlugin extends Plugin function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) { - $success = xcache_set($key, serialize($value), - (is_null($expiry) ? 0 : $expiry)); + $success = xcache_set($key, serialize($value)); Event::handle('EndCacheSet', array($key, $value, $flag, $expiry)); -- cgit v1.2.3-54-g00ecf From 1053abd2e8db40505483e1798ceabec77fe93126 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:28:00 -1000 Subject: Debug utility to log cache access --- plugins/CacheLogPlugin.php | 96 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 plugins/CacheLogPlugin.php diff --git a/plugins/CacheLogPlugin.php b/plugins/CacheLogPlugin.php new file mode 100644 index 000000000..9eb04641e --- /dev/null +++ b/plugins/CacheLogPlugin.php @@ -0,0 +1,96 @@ +. + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Log cache access + * + * Note that since most caching plugins return false for StartCache* + * methods, you should add this plugin before them, i.e. + * + * addPlugin('CacheLog'); + * addPlugin('XCache'); + * + * @category Cache + * @package StatusNet + * @author Evan Prodromou + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +class CacheLogPlugin extends Plugin +{ + function onStartCacheGet(&$key, &$value) + { + $this->log(LOG_INFO, "Fetching key '$key'"); + return true; + } + + function onEndCacheGet($key, &$value) + { + if (is_null($value)) { + $this->log(LOG_INFO, "Cache MISS for key '$key'"); + } else { + $this->log(LOG_INFO, "Cache HIT for key '$key'"); + } + return true; + } + + function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) + { + $this->log(LOG_INFO, "Setting cache value for key '$key'"); + return true; + } + + function onEndCacheSet($key, $value, $flag, $expiry) + { + $this->log(LOG_INFO, "Done setting cache value for key '$key'"); + return true; + } + + function onStartCacheDelete(&$key, &$success) + { + $this->log(LOG_INFO, "Deleting cache value for key '$key'"); + return true; + } + + function onEndCacheDelete($key) + { + $this->log(LOG_INFO, "Done deleting cache value for key '$key'"); + return true; + } +} + -- cgit v1.2.3-54-g00ecf From bfa3aa0e7f39ba9b8ff920c480efb4cf52007532 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sun, 3 Jan 2010 11:28:15 -1000 Subject: Remove logging from default cache --- lib/cache.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/lib/cache.php b/lib/cache.php index 23657bbf3..253839fb1 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -120,10 +120,7 @@ class Cache if (Event::handle('StartCacheGet', array(&$key, &$value))) { if (array_key_exists($key, $this->_items)) { - common_log(LOG_INFO, 'Cache HIT for key ' . $key); $value = $this->_items[$key]; - } else { - common_log(LOG_INFO, 'Cache MISS for key ' . $key); } Event::handle('EndCacheGet', array($key, &$value)); } @@ -148,7 +145,6 @@ class Cache if (Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { - common_log(LOG_INFO, 'Setting cache value for key ' . $key); $this->_items[$key] = $value; @@ -175,7 +171,6 @@ class Cache if (Event::handle('StartCacheDelete', array(&$key, &$success))) { if (array_key_exists($key, $this->_items[$key])) { - common_log(LOG_INFO, 'Deleting cache value for key ' . $key); unset($this->_items[$key]); } $success = true; -- cgit v1.2.3-54-g00ecf From 50af9c5c401a7bebd1503df885172cf538a6ba79 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 09:10:21 +0000 Subject: Open geoname URL in a new window --- js/util.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/js/util.js b/js/util.js index f6b59ec74..00f94e5c4 100644 --- a/js/util.js +++ b/js/util.js @@ -524,6 +524,11 @@ var SN = { // StatusNet NLN.attr('href', location.url); NLN.text(NLN_text); + NLN.click(function() { + window.open(location.url); + + return false; + }); }); }); } -- cgit v1.2.3-54-g00ecf From 9f9dcd2bf5e0343bb23b01fde65e61b83d80b702 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 09:14:14 +0000 Subject: Using object value instead of inline string --- js/util.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/util.js b/js/util.js index 00f94e5c4..048d3f1eb 100644 --- a/js/util.js +++ b/js/util.js @@ -447,7 +447,7 @@ var SN = { // StatusNet var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); - $('label[for=notice_data-geo]').attr('title', NLE.text()); + $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', NLE.text()); if (navigator.geolocation) { NDG.change(function() { @@ -475,14 +475,14 @@ var SN = { // StatusNet if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { NLN.addClass('processing'); - $('label[for=notice_data-geo]').addClass('checked'); + $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); NDGS.append(' '); $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ $('#'+SN.C.S.NoticeDataGeoSelected).remove(); $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $('label[for=notice_data-geo]').removeClass('checked'); + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); return false; }); @@ -533,7 +533,7 @@ var SN = { // StatusNet }); } else { - $('label[for=notice_data-geo]').removeClass('checked'); + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); NDGS.hide(); $('#'+SN.C.S.NoticeLat).val(''); $('#'+SN.C.S.NoticeLon).val(''); -- cgit v1.2.3-54-g00ecf From d1998adb13e78728ea9479f3efab50e55d53b32c Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 09:29:41 +0000 Subject: Trim whitespace from label's textContent --- js/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index 048d3f1eb..f7c54e469 100644 --- a/js/util.js +++ b/js/util.js @@ -447,7 +447,7 @@ var SN = { // StatusNet var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); - $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', NLE.text()); + $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', jQuery.trim($('label[for='+SN.C.S.NoticeDataGeo+']').text())); if (navigator.geolocation) { NDG.change(function() { -- cgit v1.2.3-54-g00ecf From fe8927a42caa8f74e13f636ed530ef590668f01c Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 09:52:35 +0000 Subject: Added errorCallback() to geoCurrentPosition() i.e., if user doesn't grant permission, removes the Geo processing and (if any) existing geo location data from notice form. --- js/util.js | 79 ++++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/js/util.js b/js/util.js index f7c54e469..c1cc08a71 100644 --- a/js/util.js +++ b/js/util.js @@ -493,44 +493,57 @@ var SN = { // StatusNet return false; }); - navigator.geolocation.getCurrentPosition(function(position) { - $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); - $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); - - var data = { - 'lat': position.coords.latitude, - 'lon': position.coords.longitude, - 'token': $('#token').val() - }; - - $.getJSON(geocodeURL, data, function(location) { - NLN.replaceWith(''); - NLN = $('#'+SN.C.S.NoticeLocationName); - - if (typeof(location.location_ns) != 'undefined') { - $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); - } + navigator.geolocation.getCurrentPosition( + function(position) { + $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); + $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); + + var data = { + 'lat': position.coords.latitude, + 'lon': position.coords.longitude, + 'token': $('#token').val() + }; + + $.getJSON(geocodeURL, data, function(location) { + NLN.replaceWith(''); + NLN = $('#'+SN.C.S.NoticeLocationName); + + if (typeof(location.location_ns) != 'undefined') { + $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); + } - if (typeof(location.location_id) != 'undefined') { - $('#'+SN.C.S.NoticeLocationId).val(location.location_id); - } + if (typeof(location.location_id) != 'undefined') { + $('#'+SN.C.S.NoticeLocationId).val(location.location_id); + } - if (typeof(location.name) == 'undefined') { - NLN_text = position.coords.latitude + ';' + position.coords.longitude; - } - else { - NLN_text = location.name; - } + if (typeof(location.name) == 'undefined') { + NLN_text = position.coords.latitude + ';' + position.coords.longitude; + } + else { + NLN_text = location.name; + } - NLN.attr('href', location.url); - NLN.text(NLN_text); - NLN.click(function() { - window.open(location.url); + NLN.attr('href', location.url); + NLN.text(NLN_text); + NLN.click(function() { + window.open(location.url); - return false; + return false; + }); }); - }); - }); + }, + + function(error) { + if (error.PERMISSION_DENIED == 1) { + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); + NDGS.hide(); + $('#'+SN.C.S.NoticeLat).val(''); + $('#'+SN.C.S.NoticeLon).val(''); + $('#'+SN.C.S.NoticeLocationNs).val(''); + $('#'+SN.C.S.NoticeLocationId).val(''); + } + } + ); } else { $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); -- cgit v1.2.3-54-g00ecf From ad323575e6c083417fc4e6fc1e253bc9d564e6b2 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 10:07:32 +0000 Subject: Refactored geo location removal to removeNoticeDataGeo() --- js/util.js | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/js/util.js b/js/util.js index c1cc08a71..226fdb102 100644 --- a/js/util.js +++ b/js/util.js @@ -535,23 +535,13 @@ var SN = { // StatusNet function(error) { if (error.PERMISSION_DENIED == 1) { - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - NDGS.hide(); - $('#'+SN.C.S.NoticeLat).val(''); - $('#'+SN.C.S.NoticeLon).val(''); - $('#'+SN.C.S.NoticeLocationNs).val(''); - $('#'+SN.C.S.NoticeLocationId).val(''); + removeNoticeDataGeo(); } } ); } else { - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - NDGS.hide(); - $('#'+SN.C.S.NoticeLat).val(''); - $('#'+SN.C.S.NoticeLon).val(''); - $('#'+SN.C.S.NoticeLocationNs).val(''); - $('#'+SN.C.S.NoticeLocationId).val(''); + removeNoticeDataGeo(); } }); @@ -560,6 +550,15 @@ var SN = { // StatusNet NDG.change(); } } + + function removeNoticeDataGeo() { + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); + $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + $('#'+SN.C.S.NoticeLat).val(''); + $('#'+SN.C.S.NoticeLon).val(''); + $('#'+SN.C.S.NoticeLocationNs).val(''); + $('#'+SN.C.S.NoticeLocationId).val(''); + } }, NewDirectMessage: function() { -- cgit v1.2.3-54-g00ecf From 30f58bf15f9b7e8f2a58b998937b5fd1096ee930 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 12:43:56 +0000 Subject: Updated element id for notice_data-geo --- actions/newnotice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actions/newnotice.php b/actions/newnotice.php index 8d89e9da0..a4ed87bb6 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -184,7 +184,7 @@ class NewnoticeAction extends Action $options = array('reply_to' => ($replyto == 'false') ? null : $replyto); - if ($user->shareLocation() && $this->arg('notice_data-location_enabled')) { + if ($user->shareLocation() && $this->arg('notice_data-geo')) { $locOptions = Notice::locationOptions($this->trimmed('lat'), $this->trimmed('lon'), -- cgit v1.2.3-54-g00ecf From dcd3292f575fe5194267f353961ba20d410d2aed Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 12:44:48 +0000 Subject: Relocated @title removal --- js/util.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/js/util.js b/js/util.js index 226fdb102..020031422 100644 --- a/js/util.js +++ b/js/util.js @@ -446,13 +446,12 @@ var SN = { // StatusNet if (NDG.length > 0) { var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); + NLE.removeAttr('title'); $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', jQuery.trim($('label[for='+SN.C.S.NoticeDataGeo+']').text())); if (navigator.geolocation) { NDG.change(function() { - NLE.removeAttr('title'); - $.cookie(SN.C.S.NoticeLocationCookieName, $('#'+SN.C.S.NoticeDataGeo).attr('checked')); var NLN = $('#'+SN.C.S.NoticeLocationName); -- cgit v1.2.3-54-g00ecf From 9a742dd2a2459b9a114239c2f8fd982290b39072 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 13:28:42 +0000 Subject: Removed comma --- theme/base/css/display.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 0bb3479cc..4fe30554e 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -571,7 +571,7 @@ font-size:1.1em; float:right; font-size:0.8em; } -, + .form_notice #notice_data-geo_selected button.minimize { float:left; } -- cgit v1.2.3-54-g00ecf From dcc9497099442865914c4e56adebd88eecf8b433 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 13:30:07 +0000 Subject: Removed unneeded line-height --- theme/base/css/display.css | 1 - 1 file changed, 1 deletion(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 4fe30554e..f441a4020 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -559,7 +559,6 @@ line-height:1.618; float:left; width:80%; display:block; -line-height:1.8; overflow:auto; margin-right:2.5%; } -- cgit v1.2.3-54-g00ecf From a0f7896f22b93caedf4cfcb91b14a25c0c1e6a82 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 13:44:32 +0000 Subject: Ran NoticeLocationAttach() through jslint --- js/util.js | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/js/util.js b/js/util.js index 020031422..2d108118a 100644 --- a/js/util.js +++ b/js/util.js @@ -442,6 +442,15 @@ var SN = { // StatusNet }, NoticeLocationAttach: function() { + function removeNoticeDataGeo() { + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); + $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + $('#'+SN.C.S.NoticeLat).val(''); + $('#'+SN.C.S.NoticeLon).val(''); + $('#'+SN.C.S.NoticeLocationNs).val(''); + $('#'+SN.C.S.NoticeLocationId).val(''); + } + var NDG = $('#'+SN.C.S.NoticeDataGeo); if (NDG.length > 0) { var NLE = $('#notice_data-location_wrap'); @@ -460,7 +469,7 @@ var SN = { // StatusNet } var S = '
'; - NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); + var NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); if (NDGS.length > 0) { NDGS.replaceWith(S); } @@ -470,7 +479,7 @@ var SN = { // StatusNet NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); NDGS.prepend('Geo'); - NLN = $('#'+SN.C.S.NoticeLocationName); + var NLN = $('#'+SN.C.S.NoticeLocationName); if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { NLN.addClass('processing'); @@ -504,6 +513,7 @@ var SN = { // StatusNet }; $.getJSON(geocodeURL, data, function(location) { + NLN = $('#'+SN.C.S.NoticeLocationName); NLN.replaceWith(''); NLN = $('#'+SN.C.S.NoticeLocationName); @@ -542,22 +552,12 @@ var SN = { // StatusNet else { removeNoticeDataGeo(); } - }); + }).change(); var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - NDG.attr('checked', (cookieVal == null || cookieVal == 'true')); - NDG.change(); + NDG.attr('checked', (cookieVal === null || cookieVal == 'true')); } } - - function removeNoticeDataGeo() { - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - $('#'+SN.C.S.NoticeDataGeoSelected).hide(); - $('#'+SN.C.S.NoticeLat).val(''); - $('#'+SN.C.S.NoticeLon).val(''); - $('#'+SN.C.S.NoticeLocationNs).val(''); - $('#'+SN.C.S.NoticeLocationId).val(''); - } }, NewDirectMessage: function() { -- cgit v1.2.3-54-g00ecf From 7a2d72fe28e29c67f2a9e8fdb59c6c5c9b38d5e6 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 4 Jan 2010 12:49:25 -0500 Subject: Enable memcache automatic compression, starting at 20k and only if compression gain is greater than 20%. Allows storage of larger objects (over 1mb in size uncompressed), such as huge LDAP schemas. Should also improve cache efficiency (allows more stuff to be stored in same memory) and reduce network latency (less data transfer) (redo commit 1e9c03e1993b5d2978ac4c5213a8a64e0150b4a2 which was apparently lost during pluginization) --- plugins/MemcachePlugin.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php index acbec135e..78e2b2406 100644 --- a/plugins/MemcachePlugin.php +++ b/plugins/MemcachePlugin.php @@ -156,6 +156,11 @@ class MemcachePlugin extends Plugin } $this->_conn->addServer($host, $port); } + //Compress items stored in the cache if they're over 2k in size + //and the compression would save more than 20%. + //Allows the cache to store objects larger than 1MB (if they + //compress to less than 1MB), and improves cache memory efficiency. + $this->_conn->setCompressThreshold(20000, 0.2); } } } -- cgit v1.2.3-54-g00ecf From 783a2e249bac2ccd02b6ae3351dfe83630b71cc0 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 10:30:19 -0800 Subject: Fix for auto_increment parameter in auto-created tables via checkschema. Update FeedSub plugin for non-Plugin_DataObject setup and working checkschema updates. --- lib/columndef.php | 1 + lib/schema.php | 4 ++ plugins/FeedSub/FeedSubPlugin.php | 7 ++- plugins/FeedSub/feedinfo.php | 108 +++++++++++++++++++++++++++++--------- 4 files changed, 90 insertions(+), 30 deletions(-) diff --git a/lib/columndef.php b/lib/columndef.php index 1bae6b33b..ac2fcd23e 100644 --- a/lib/columndef.php +++ b/lib/columndef.php @@ -74,6 +74,7 @@ class ColumnDef * @param string $key type of key * @param value $default default value * @param value $extra unused + * @param boolean $auto_increment */ function __construct($name=null, $type=null, $size=null, diff --git a/lib/schema.php b/lib/schema.php index a8ba91b87..6fe442d56 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -523,6 +523,10 @@ class Schema } else { $sql .= ($cd->nullable) ? "null " : "not null "; } + + if (!empty($cd->auto_increment)) { + $sql .= " auto_increment "; + } return $sql; } diff --git a/plugins/FeedSub/FeedSubPlugin.php b/plugins/FeedSub/FeedSubPlugin.php index 857a9794d..e49e2a648 100644 --- a/plugins/FeedSub/FeedSubPlugin.php +++ b/plugins/FeedSub/FeedSubPlugin.php @@ -105,12 +105,11 @@ class FeedSubPlugin extends Plugin return true; } - /* - // auto increment seems to be broken function onCheckSchema() { + // warning: the autoincrement doesn't seem to set. + // alter table feedinfo change column id id int(11) not null auto_increment; $schema = Schema::get(); - $schema->ensureDataObject('Feedinfo'); + $schema->ensureTable('feedinfo', Feedinfo::schemaDef()); return true; } - */ } diff --git a/plugins/FeedSub/feedinfo.php b/plugins/FeedSub/feedinfo.php index fff66afe9..b166bd6e1 100644 --- a/plugins/FeedSub/feedinfo.php +++ b/plugins/FeedSub/feedinfo.php @@ -31,7 +31,7 @@ class FeedDBException extends FeedSubException } } -class Feedinfo extends Plugin_DataObject +class Feedinfo extends Memcached_DataObject { public $__table = 'feedinfo'; @@ -56,34 +56,90 @@ class Feedinfo extends Plugin_DataObject return parent::staticGet(__CLASS__, $k, $v); } - function tableDef() + /** + * return table definition for DB_DataObject + * + * DB_DataObject needs to know something about the table to manipulate + * instances. This method provides all the DB_DataObject needs to know. + * + * @return array array of column definitions + */ + + function table() + { + return array('id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'profile_id' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'feeduri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'homeuri' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'huburi' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'verify_token' => DB_DATAOBJECT_STR, + 'sub_start' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME, + 'sub_end' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, + 'lastupdate' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL); + } + + static function schemaDef() + { + return array(new ColumnDef('id', 'integer', + /*size*/ null, + /*nullable*/ false, + /*key*/ 'PRI', + /*default*/ '0', + /*extra*/ null, + /*auto_increment*/ true), + new ColumnDef('profile_id', 'integer', + null, false), + new ColumnDef('feeduri', 'varchar', + 255, false, 'UNI'), + new ColumnDef('homeuri', 'varchar', + 255, false), + new ColumnDef('huburi', 'varchar', + 255, false), + new ColumnDef('verify_token', 'varchar', + 32, true), + new ColumnDef('sub_start', 'datetime', + null, true), + new ColumnDef('sub_end', 'datetime', + null, true), + new ColumnDef('created', 'datetime', + null, false), + new ColumnDef('lastupdate', 'datetime', + null, false)); + } + + /** + * return key definitions for DB_DataObject + * + * DB_DataObject needs to know about keys that the table has; this function + * defines them. + * + * @return array key definitions + */ + + function keys() { - class_exists('Schema'); // autoload hack - // warning: the autoincrement doesn't seem to set. - // alter table feedinfo change column id id int(11) not null auto_increment; - return new TableDef($this->__table, - array(new ColumnDef('id', 'integer', - null, false, 'PRI', '0', null, true), - new ColumnDef('profile_id', 'integer', - null, false), - new ColumnDef('feeduri', 'varchar', - 255, false, 'UNI'), - new ColumnDef('homeuri', 'varchar', - 255, false), - new ColumnDef('huburi', 'varchar', - 255, false), - new ColumnDef('verify_token', 'varchar', - 32, true), - new ColumnDef('sub_start', 'datetime', - null, true), - new ColumnDef('sub_end', 'datetime', - null, true), - new ColumnDef('created', 'datetime', - null, false), - new ColumnDef('lastupdate', 'datetime', - null, false))); + return array('id' => 'P'); //? } + /** + * return key definitions for Memcached_DataObject + * + * Our caching system uses the same key definitions, but uses a different + * method to get them. + * + * @return array key definitions + */ + + function keyTypes() + { + return $this->keys(); + } + + /** + * Fetch the StatusNet-side profile for this feed + * @return Profile + */ public function getProfile() { return Profile::staticGet('id', $this->profile_id); -- cgit v1.2.3-54-g00ecf From e440b69e1a3c73796535298b3b20d6678431f9b6 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 4 Jan 2010 13:33:52 -0500 Subject: Allow an authentication plugin with the same provider_name other than the one that actually checked the password to autoregister a user Allows for SSO-type plugins that don't have any information about the user other than their username to do autoregistration --- plugins/Authentication/AuthenticationPlugin.php | 28 ++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/plugins/Authentication/AuthenticationPlugin.php b/plugins/Authentication/AuthenticationPlugin.php index a76848b04..75e8d2b76 100644 --- a/plugins/Authentication/AuthenticationPlugin.php +++ b/plugins/Authentication/AuthenticationPlugin.php @@ -99,6 +99,23 @@ abstract class AuthenticationPlugin extends Plugin } } + /** + * Internal AutoRegister event handler + * @param nickname + * @param provider_name + * @param user - the newly registered user + */ + function onAutoRegister($nickname, $provider_name, &$user) + { + if($provider_name == $this->provider_name && $this->autoregistration){ + $user = $this->autoregister($nickname); + if($user){ + User_username::register($user,$nickname,$this->provider_name); + return false; + } + } + } + function onStartCheckPassword($nickname, $password, &$authenticatedUser){ //map the nickname to a username $user_username = new User_username(); @@ -127,13 +144,10 @@ abstract class AuthenticationPlugin extends Plugin } } }else{ - if($this->autoregistration){ - $authenticated = $this->checkPassword($nickname, $password); - if($authenticated){ - $user = $this->autoregister($nickname); - if($user){ - $authenticatedUser = $user; - User_username::register($authenticatedUser,$nickname,$this->provider_name); + $authenticated = $this->checkPassword($nickname, $password); + if($authenticated){ + if(Event::handle('AutoRegister', array($nickname, $this->provider_name, &$authenticatedUser))){ + if($authenticatedUser){ return false; } } -- cgit v1.2.3-54-g00ecf From 11d7365a15bb8c8cb856bf0d545a0b550f3dbe26 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 10:39:11 -0800 Subject: Don't spew notices when building tag cloud if there is no popularity sum to divide by. --- actions/publictagcloud.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index e7f6ee36c..5c7074029 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -136,7 +136,12 @@ class PublictagcloudAction extends Action $this->elementStart('dd'); $this->elementStart('ul', 'tags xoxo tag-cloud'); foreach ($tw as $tag => $weight) { - $this->showTag($tag, $weight, $weight/$sum); + if ($sum) { + $weightedSum = $weight/$sum; + } else { + $weightedSum = 1; + } + $this->showTag($tag, $weight, $weightedSum); } $this->elementEnd('ul'); $this->elementEnd('dd'); -- cgit v1.2.3-54-g00ecf From 38912b34c7f9d0a377feeb76572003a36c61ee7e Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 10:41:52 -0800 Subject: Drop the overly-prominent link to checklibs display; it's unnecessary and just confuses people. The ability's still there to aid in debugging, but it won't be tempting people to click on it. --- install.php | 1 - 1 file changed, 1 deletion(-) diff --git a/install.php b/install.php index 1c62bb2b2..435f6d63b 100644 --- a/install.php +++ b/install.php @@ -454,7 +454,6 @@ function showForm()
-- cgit v1.2.3-54-g00ecf From 8f362e9956ef699511344e0a494669ae78aa93eb Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 08:53:28 -1000 Subject: user_id is a non-autoincrement pkey for user_location_prefs --- classes/statusnet.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 4077746c4..ac31148da 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -572,5 +572,5 @@ created = 142 modified = 384 [user_location_prefs__keys] -user_id = U +user_id = K -- cgit v1.2.3-54-g00ecf From 5a1ea0b9b28138bc4e06d96e2910b0cf3be1eab2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 08:59:19 -1000 Subject: Stop caching unfindable keys There were some problems with the automated cache/uncache system for data objects that made us cache unfindable keys (with null attributes and sometimes null names). Fixed those problems and refactored the encache() and decache() methods so they use a helper to find the cache keys to use. --- classes/Memcached_DataObject.php | 83 ++++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 33 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 1608720d1..020d813b2 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -152,52 +152,69 @@ class Memcached_DataObject extends DB_DataObject function encache() { $c = $this->memcache(); + if (!$c) { return false; - } else { - $pkey = array(); - $pval = array(); - $types = $this->keyTypes(); - ksort($types); - foreach ($types as $key => $type) { - if ($type == 'K') { - $pkey[] = $key; - $pval[] = $this->$key; - } else { - $c->set($this->cacheKey($this->tableName(), $key, $this->$key), $this); - } - } - # XXX: should work for both compound and scalar pkeys - $pvals = implode(',', $pval); - $pkeys = implode(',', $pkey); - $c->set($this->cacheKey($this->tableName(), $pkeys, $pvals), $this); + } + + $keys = $this->_allCacheKeys(); + + foreach ($keys as $key) { + $c->set($key, $this); } } function decache() { $c = $this->memcache(); + if (!$c) { return false; - } else { - $pkey = array(); - $pval = array(); - $types = $this->keyTypes(); - ksort($types); - foreach ($types as $key => $type) { - if ($type == 'K') { - $pkey[] = $key; - $pval[] = $this->$key; - } else { - $c->delete($this->cacheKey($this->tableName(), $key, $this->$key)); + } + + $keys = $this->_allCacheKeys(); + + foreach ($keys as $key) { + $c->delete($key, $this); + } + } + + function _allCacheKeys() + { + $ckeys = array(); + + $types = $this->keyTypes(); + ksort($types); + + $pkey = array(); + $pval = array(); + + foreach ($types as $key => $type) { + + assert(!empty($key)); + + if ($type == 'U') { + if (empty($this->$key)) { + continue; } + $ckeys[] = $this->cacheKey($this->tableName(), $key, $this->$key); + } else if ($type == 'K' || $type == 'N') { + $pkey[] = $key; + $pval[] = $this->$key; + } else { + throw new Exception("Unknown key type $key => $type for " . $this->tableName()); } - # should work for both compound and scalar pkeys - # XXX: comma works for now but may not be safe separator for future keys - $pvals = implode(',', $pval); - $pkeys = implode(',', $pkey); - $c->delete($this->cacheKey($this->tableName(), $pkeys, $pvals)); } + + assert(count($pkey) > 0); + + // XXX: should work for both compound and scalar pkeys + $pvals = implode(',', $pval); + $pkeys = implode(',', $pkey); + + $ckeys[] = $this->cacheKey($this->tableName(), $pkeys, $pvals); + + return $ckeys; } function multicache($cls, $kv) -- cgit v1.2.3-54-g00ecf From bcddcb38cebc5ffbffd3df61fb9acaf6f674b133 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 09:09:59 -1000 Subject: make compression threshold and min savings config attrs for MemcachePlugin --- plugins/MemcachePlugin.php | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php index 78e2b2406..998766313 100644 --- a/plugins/MemcachePlugin.php +++ b/plugins/MemcachePlugin.php @@ -54,6 +54,9 @@ class MemcachePlugin extends Plugin private $_conn = null; public $servers = array('127.0.0.1;11211'); + public $compressThreshold = 20480; + public $compressMinSaving = 0.2; + /** * Initialize the plugin * @@ -156,11 +159,16 @@ class MemcachePlugin extends Plugin } $this->_conn->addServer($host, $port); } - //Compress items stored in the cache if they're over 2k in size - //and the compression would save more than 20%. - //Allows the cache to store objects larger than 1MB (if they - //compress to less than 1MB), and improves cache memory efficiency. - $this->_conn->setCompressThreshold(20000, 0.2); + + // Compress items stored in the cache if they're over threshold in size + // (default 2KiB) and the compression would save more than min savings + // ratio (default 0.2). + + // Allows the cache to store objects larger than 1MB (if they + // compress to less than 1MB), and improves cache memory efficiency. + + $this->_conn->setCompressThreshold($this->compressThreshold, + $this->compressMinSaving); } } } -- cgit v1.2.3-54-g00ecf From c0e4d7bfa2181090f05d3b42ed9f9b135b43aea1 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Mon, 4 Jan 2010 14:43:05 -0500 Subject: Add 'takeOverLogin' parameter for a real SSO feel --- plugins/CasAuthentication/CasAuthenticationPlugin.php | 9 +++++++++ plugins/CasAuthentication/README | 6 +++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/CasAuthentication/CasAuthenticationPlugin.php b/plugins/CasAuthentication/CasAuthenticationPlugin.php index 8b6ef5462..8f29c7d2a 100644 --- a/plugins/CasAuthentication/CasAuthenticationPlugin.php +++ b/plugins/CasAuthentication/CasAuthenticationPlugin.php @@ -40,6 +40,7 @@ class CasAuthenticationPlugin extends AuthenticationPlugin public $server; public $port = 443; public $path = ''; + public $takeOverLogin = false; function checkPassword($username, $password) { @@ -62,6 +63,14 @@ class CasAuthenticationPlugin extends AuthenticationPlugin } } + function onArgsInitialize(&$args) + { + if($this->takeOverLogin && $args['action'] == 'login') + { + $args['action'] = 'caslogin'; + } + } + function onStartInitializeRouter($m) { $m->connect('main/cas', array('action' => 'caslogin')); diff --git a/plugins/CasAuthentication/README b/plugins/CasAuthentication/README index 2ee54dc05..c17a28e54 100644 --- a/plugins/CasAuthentication/README +++ b/plugins/CasAuthentication/README @@ -21,6 +21,9 @@ password_changeable*: must be set to false. This plugin does not support changin server*: CAS server to authentication against port (443): Port the CAS server listens on. Almost always 443 path (): Path on the server to CAS. Usually blank. +takeOverLogin (false): Take over the main login action. If takeOverLogin is + set, anytime the standard username/password login form would be shown, + a CAS login will be done instead. * required default values are in (parenthesis) @@ -33,6 +36,7 @@ addPlugin('casAuthentication', array( 'autoregistration'=>true, 'server'=>'sso-cas.univ-rennes1.fr', 'port'=>443, - 'path'=>'' + 'path'=>'', + 'takeOverLogin'=>true )); -- cgit v1.2.3-54-g00ecf From 6911e1c7972c3adec53d0fe04ebdd7da0fbd8b12 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 11:55:27 -0800 Subject: Ticket 2141: bugs with weighted popularity lists across year boundary. Consolidated several separate implementations of the same weighting algorithm into common_sql_weight() and fixed some bugs... For MySQL, now using timestampdiff() instead of subtraction for the comparison, so we get sane results when the year doesn't match, and utc_timestamp() rather than now() so we don't get negative ages for recent items with local server timezone. Unknown whether the same problems affect PostgreSQL, but note that it lacks the timestampdiff() SQL function. --- actions/favorited.php | 8 ++------ actions/publictagcloud.php | 11 ++++------- lib/grouptagcloudsection.php | 7 +------ lib/personaltagcloudsection.php | 11 +++-------- lib/popularnoticesection.php | 6 +++--- lib/util.php | 20 ++++++++++++++++++++ 6 files changed, 33 insertions(+), 30 deletions(-) diff --git a/actions/favorited.php b/actions/favorited.php index 150b67b0b..9ffa5b844 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -185,11 +185,7 @@ class FavoritedAction extends Action function showContent() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; - } + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); $qry = 'SELECT notice.*, '. $weightexpr . ' as weight ' . @@ -207,7 +203,7 @@ class FavoritedAction extends Action } $notice = Memcached_DataObject::cachedQuery('Notice', - sprintf($qry, common_config('popular', 'dropoff')), + $qry, 600); $nl = new NoticeList($notice, $this); diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index 5c7074029..b5b474f13 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -105,12 +105,8 @@ class PublictagcloudAction extends Action #Add the aggregated columns... $tags->selectAdd('max(notice_id) as last_notice_id'); - if(common_config('db','type')=='pgsql') { - $calc='sum(exp(-extract(epoch from (now()-created))/%s)) as weight'; - } else { - $calc='sum(exp(-(now() - created)/%s)) as weight'; - } - $tags->selectAdd(sprintf($calc, common_config('tag', 'dropoff'))); + $calc = common_sql_weight('created', common_config('tag', 'dropoff')); + $tags->selectAdd($calc . ' as weight'); $tags->groupBy('tag'); $tags->orderBy('weight DESC'); @@ -136,10 +132,11 @@ class PublictagcloudAction extends Action $this->elementStart('dd'); $this->elementStart('ul', 'tags xoxo tag-cloud'); foreach ($tw as $tag => $weight) { + common_log(LOG_DEBUG, "$weight/$sum"); if ($sum) { $weightedSum = $weight/$sum; } else { - $weightedSum = 1; + $weightedSum = 0.5; } $this->showTag($tag, $weight, $weightedSum); } diff --git a/lib/grouptagcloudsection.php b/lib/grouptagcloudsection.php index 091cf4845..14ceda085 100644 --- a/lib/grouptagcloudsection.php +++ b/lib/grouptagcloudsection.php @@ -58,11 +58,7 @@ class GroupTagCloudSection extends TagCloudSection function getTags() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; - } + $weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff')); $names = $this->group->getAliases(); @@ -99,7 +95,6 @@ class GroupTagCloudSection extends TagCloudSection $tag = Memcached_DataObject::cachedQuery('Notice_tag', sprintf($qry, - common_config('tag', 'dropoff'), $this->group->id, $namestring), 3600); diff --git a/lib/personaltagcloudsection.php b/lib/personaltagcloudsection.php index 0b29d58ca..091425f92 100644 --- a/lib/personaltagcloudsection.php +++ b/lib/personaltagcloudsection.php @@ -58,13 +58,9 @@ class PersonalTagCloudSection extends TagCloudSection function getTags() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; - } - - $qry = 'SELECT notice_tag.tag, '. + $weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff')); + + $qry = 'SELECT notice_tag.tag, '. $weightexpr . ' as weight ' . 'FROM notice_tag JOIN notice ' . 'ON notice_tag.notice_id = notice.id ' . @@ -83,7 +79,6 @@ class PersonalTagCloudSection extends TagCloudSection $tag = Memcached_DataObject::cachedQuery('Notice_tag', sprintf($qry, - common_config('tag', 'dropoff'), $this->user->id), 3600); return $tag; diff --git a/lib/popularnoticesection.php b/lib/popularnoticesection.php index 9fbc9d2dd..fbf9a60ab 100644 --- a/lib/popularnoticesection.php +++ b/lib/popularnoticesection.php @@ -48,17 +48,17 @@ class PopularNoticeSection extends NoticeSection { function getNotices() { + // @fixme there should be a common func for this if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; if (!empty($this->out->tag)) { $tag = pg_escape_string($this->out->tag); } } else { - $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; if (!empty($this->out->tag)) { $tag = mysql_escape_string($this->out->tag); } } + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); $qry = "SELECT notice.*, $weightexpr as weight "; if(isset($tag)) { $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . @@ -78,7 +78,7 @@ class PopularNoticeSection extends NoticeSection $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; $notice = Memcached_DataObject::cachedQuery('Notice', - sprintf($qry, common_config('popular', 'dropoff')), + $qry, 1200); return $notice; } diff --git a/lib/util.php b/lib/util.php index 63656b604..50bd0e2ac 100644 --- a/lib/util.php +++ b/lib/util.php @@ -908,6 +908,26 @@ function common_sql_date($datetime) return strftime('%Y-%m-%d %H:%M:%S', $datetime); } +/** + * Return an SQL fragment to calculate an age-based weight from a given + * timestamp or datetime column. + * + * @param string $column name of field we're comparing against current time + * @param integer $dropoff divisor for age in seconds before exponentiation + * @return string SQL fragment + */ +function common_sql_weight($column, $dropoff) +{ + if (common_config('db', 'type') == 'pgsql') { + // PostgreSQL doesn't support timestampdiff function. + // @fixme will this use the right time zone? + // @fixme does this handle cross-year subtraction correctly? + return "sum(exp(-extract(epoch from (now() - $column)) / $dropoff))"; + } else { + return "sum(exp(timestampdiff(second, utc_timestamp(), $column) / $dropoff))"; + } +} + function common_redirect($url, $code=307) { static $status = array(301 => "Moved Permanently", -- cgit v1.2.3-54-g00ecf From 928b5f8f2be554c37b0a435e76e88e92260e667b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 09:57:48 -1000 Subject: Differentiate between empty values and cache misses in CacheLogPlugin --- plugins/CacheLogPlugin.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/plugins/CacheLogPlugin.php b/plugins/CacheLogPlugin.php index 9eb04641e..f1e5dd83a 100644 --- a/plugins/CacheLogPlugin.php +++ b/plugins/CacheLogPlugin.php @@ -61,7 +61,7 @@ class CacheLogPlugin extends Plugin function onEndCacheGet($key, &$value) { - if (is_null($value)) { + if ($value === false) { $this->log(LOG_INFO, "Cache MISS for key '$key'"); } else { $this->log(LOG_INFO, "Cache HIT for key '$key'"); @@ -71,7 +71,21 @@ class CacheLogPlugin extends Plugin function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success) { - $this->log(LOG_INFO, "Setting cache value for key '$key'"); + if (empty($value)) { + if (is_array($value)) { + $this->log(LOG_INFO, "Setting empty array for key '$key'"); + } else if (is_null($value)) { + $this->log(LOG_INFO, "Setting null value for key '$key'"); + } else if (is_string($value)) { + $this->log(LOG_INFO, "Setting empty string for key '$key'"); + } else if (is_integer($value)) { + $this->log(LOG_INFO, "Setting integer 0 for key '$key'"); + } else { + $this->log(LOG_INFO, "Setting empty value '$value' for key '$key'"); + } + } else { + $this->log(LOG_INFO, "Setting non-empty value for key '$key'"); + } return true; } -- cgit v1.2.3-54-g00ecf From a1821ec8afd40c3ab88546a8fa2e6fc03a19ad25 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 09:59:47 -1000 Subject: default value for cache::get() changed from null to false --- lib/cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cache.php b/lib/cache.php index 253839fb1..bac3499e5 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -116,7 +116,7 @@ class Cache function get($key) { - $value = null; + $value = false; if (Event::handle('StartCacheGet', array(&$key, &$value))) { if (array_key_exists($key, $this->_items)) { -- cgit v1.2.3-54-g00ecf From abc9b332412921e7ae7f730b23e186bcba412486 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 10:00:17 -1000 Subject: Memcached_DataObject stores empty values in the cache There's great value in knowing that something doesn't exist. We now cache this information, and carefully compare the results from cache as $results !== false instead of !empty($results), since some empty values (null, 0, empty array, empty string) are stored in the cache. Caching staticGet() and pkeyGet() now store DB misses in the cache, and cachedQuery() checks for empty results from the cache. --- classes/Memcached_DataObject.php | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 020d813b2..a77e43d38 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -19,8 +19,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; - class Memcached_DataObject extends DB_DataObject { /** @@ -57,7 +55,7 @@ class Memcached_DataObject extends DB_DataObject unset($i); } $i = Memcached_DataObject::getcached($cls, $k, $v); - if ($i) { + if ($i !== false) { // false == cache miss return $i; } else { $i = DB_DataObject::factory($cls); @@ -69,6 +67,12 @@ class Memcached_DataObject extends DB_DataObject $i->encache(); return $i; } else { + // save the fact that no such row exists + $c = self::memcache(); + if (!empty($c)) { + $ck = self::cachekey($cls, $k, $v); + $c->set($ck, null); + } return false; } } @@ -77,10 +81,13 @@ class Memcached_DataObject extends DB_DataObject function &pkeyGet($cls, $kv) { $i = Memcached_DataObject::multicache($cls, $kv); - if ($i) { + if ($i !== false) { // false == cache miss return $i; } else { - $i = new $cls(); + $i = DB_DataObject::factory($cls); + if (empty($i)) { + return false; + } foreach ($kv as $k => $v) { $i->$k = $v; } @@ -88,6 +95,11 @@ class Memcached_DataObject extends DB_DataObject $i->encache(); } else { $i = null; + $c = self::memcache(); + if (!empty($c)) { + $ck = self::multicacheKey($cls, $kv); + $c->set($ck, null); + } } return $i; } @@ -220,16 +232,22 @@ class Memcached_DataObject extends DB_DataObject function multicache($cls, $kv) { ksort($kv); - $c = Memcached_DataObject::memcache(); + $c = self::memcache(); if (!$c) { return false; } else { - $pkeys = implode(',', array_keys($kv)); - $pvals = implode(',', array_values($kv)); - return $c->get(Memcached_DataObject::cacheKey($cls, $pkeys, $pvals)); + return $c->get(self::multicacheKey($cls, $kv)); } } + static function multicacheKey($cls, $kv) + { + ksort($kv); + $pkeys = implode(',', array_keys($kv)); + $pvals = implode(',', array_values($kv)); + return self::cacheKey($cls, $pkeys, $pvals); + } + function getSearchEngine($table) { require_once INSTALLDIR.'/lib/search_engines.php'; @@ -264,7 +282,8 @@ class Memcached_DataObject extends DB_DataObject $key_part = common_keyize($cls).':'.md5($qry); $ckey = common_cache_key($key_part); $stored = $c->get($ckey); - if ($stored) { + + if ($stored !== false) { return new ArrayWrapper($stored); } -- cgit v1.2.3-54-g00ecf From 254ea279d8c86ed25ed74bff036b16e6293571f7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 10:02:59 -1000 Subject: carefully compare cached settings against false for Config --- classes/Config.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Config.php b/classes/Config.php index 390d75381..6d914ca1f 100644 --- a/classes/Config.php +++ b/classes/Config.php @@ -59,7 +59,7 @@ class Config extends Memcached_DataObject if (!empty($c)) { $settings = $c->get(common_cache_key(self::settingsKey)); - if (!empty($settings)) { + if ($settings !== false) { return $settings; } } -- cgit v1.2.3-54-g00ecf From 06b6a27d7d31cb0680dffff70c498e27ece56762 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 10:03:57 -1000 Subject: cached id streams can be empty, compare against false --- classes/Notice.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index 3e55bd6fa..e8bc509a6 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1207,7 +1207,7 @@ class Notice extends Memcached_DataObject $idstr = $cache->get($idkey); - if (!empty($idstr)) { + if ($idstr !== false) { // Cache hit! Woohoo! $window = explode(',', $idstr); $ids = array_slice($window, $offset, $limit); @@ -1216,7 +1216,7 @@ class Notice extends Memcached_DataObject $laststr = $cache->get($idkey.';last'); - if (!empty($laststr)) { + if ($laststr !== false) { $window = explode(',', $laststr); $last_id = $window[0]; $new_ids = call_user_func_array($fn, array_merge($args, array(0, NOTICE_CACHE_WINDOW, @@ -1376,7 +1376,7 @@ class Notice extends Memcached_DataObject $ids = $this->_repeatStreamDirect($limit); } else { $idstr = $cache->get(common_cache_key('notice:repeats:'.$this->id)); - if (!empty($idstr)) { + if ($idstr !== false) { $ids = explode(',', $idstr); } else { $ids = $this->_repeatStreamDirect(100); -- cgit v1.2.3-54-g00ecf From 96480aa6c1abda95db272f7c0a2b0e96f17acc70 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 10:12:19 -1000 Subject: XCachePlugin returns false value for cache miss --- plugins/XCachePlugin.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/XCachePlugin.php b/plugins/XCachePlugin.php index 8eed12cbc..03cb0c06e 100644 --- a/plugins/XCachePlugin.php +++ b/plugins/XCachePlugin.php @@ -63,8 +63,10 @@ class XCachePlugin extends Plugin function onStartCacheGet(&$key, &$value) { - $value = xcache_get($key); - if (!is_null($value)) { + if (!xcache_isset($key)) { + $value = false; + } else { + $value = xcache_get($key); $value = unserialize($value); } Event::handle('EndCacheGet', array($key, &$value)); -- cgit v1.2.3-54-g00ecf From af95005bc481d6f8f84a780bdc062426e22f3a03 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 13:01:17 -0800 Subject: Ticket 2141: bugs with weighted popularity lists across year boundary. Consolidated several separate implementations of the same weighting algorithm into common_sql_weight() and fixed some bugs... For MySQL, now using timestampdiff() instead of subtraction for the comparison, so we get sane results when the year doesn't match, and utc_timestamp() rather than now() so we don't get negative ages for recent items with local server timezone. Unknown whether the same problems affect PostgreSQL, but note that it lacks the timestampdiff() SQL function. --- actions/favorited.php | 8 ++------ actions/publictagcloud.php | 15 ++++++++------- lib/grouptagcloudsection.php | 7 +------ lib/personaltagcloudsection.php | 11 +++-------- lib/popularnoticesection.php | 6 +++--- lib/util.php | 20 ++++++++++++++++++++ 6 files changed, 37 insertions(+), 30 deletions(-) diff --git a/actions/favorited.php b/actions/favorited.php index 150b67b0b..9ffa5b844 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -185,11 +185,7 @@ class FavoritedAction extends Action function showContent() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; - } + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); $qry = 'SELECT notice.*, '. $weightexpr . ' as weight ' . @@ -207,7 +203,7 @@ class FavoritedAction extends Action } $notice = Memcached_DataObject::cachedQuery('Notice', - sprintf($qry, common_config('popular', 'dropoff')), + $qry, 600); $nl = new NoticeList($notice, $this); diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index e7f6ee36c..9e4478dbb 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -105,12 +105,8 @@ class PublictagcloudAction extends Action #Add the aggregated columns... $tags->selectAdd('max(notice_id) as last_notice_id'); - if(common_config('db','type')=='pgsql') { - $calc='sum(exp(-extract(epoch from (now()-created))/%s)) as weight'; - } else { - $calc='sum(exp(-(now() - created)/%s)) as weight'; - } - $tags->selectAdd(sprintf($calc, common_config('tag', 'dropoff'))); + $calc = common_sql_weight('created', common_config('tag', 'dropoff')); + $tags->selectAdd($calc . ' as weight'); $tags->groupBy('tag'); $tags->orderBy('weight DESC'); @@ -136,7 +132,12 @@ class PublictagcloudAction extends Action $this->elementStart('dd'); $this->elementStart('ul', 'tags xoxo tag-cloud'); foreach ($tw as $tag => $weight) { - $this->showTag($tag, $weight, $weight/$sum); + if ($sum) { + $weightedSum = $weight/$sum; + } else { + $weightedSum = 0.5; + } + $this->showTag($tag, $weight, $weightedSum); } $this->elementEnd('ul'); $this->elementEnd('dd'); diff --git a/lib/grouptagcloudsection.php b/lib/grouptagcloudsection.php index 091cf4845..14ceda085 100644 --- a/lib/grouptagcloudsection.php +++ b/lib/grouptagcloudsection.php @@ -58,11 +58,7 @@ class GroupTagCloudSection extends TagCloudSection function getTags() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; - } + $weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff')); $names = $this->group->getAliases(); @@ -99,7 +95,6 @@ class GroupTagCloudSection extends TagCloudSection $tag = Memcached_DataObject::cachedQuery('Notice_tag', sprintf($qry, - common_config('tag', 'dropoff'), $this->group->id, $namestring), 3600); diff --git a/lib/personaltagcloudsection.php b/lib/personaltagcloudsection.php index 0b29d58ca..091425f92 100644 --- a/lib/personaltagcloudsection.php +++ b/lib/personaltagcloudsection.php @@ -58,13 +58,9 @@ class PersonalTagCloudSection extends TagCloudSection function getTags() { - if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - notice_tag.created)) / %s))'; - } else { - $weightexpr='sum(exp(-(now() - notice_tag.created) / %s))'; - } - - $qry = 'SELECT notice_tag.tag, '. + $weightexpr = common_sql_weight('notice_tag.created', common_config('tag', 'dropoff')); + + $qry = 'SELECT notice_tag.tag, '. $weightexpr . ' as weight ' . 'FROM notice_tag JOIN notice ' . 'ON notice_tag.notice_id = notice.id ' . @@ -83,7 +79,6 @@ class PersonalTagCloudSection extends TagCloudSection $tag = Memcached_DataObject::cachedQuery('Notice_tag', sprintf($qry, - common_config('tag', 'dropoff'), $this->user->id), 3600); return $tag; diff --git a/lib/popularnoticesection.php b/lib/popularnoticesection.php index 9fbc9d2dd..fbf9a60ab 100644 --- a/lib/popularnoticesection.php +++ b/lib/popularnoticesection.php @@ -48,17 +48,17 @@ class PopularNoticeSection extends NoticeSection { function getNotices() { + // @fixme there should be a common func for this if (common_config('db', 'type') == 'pgsql') { - $weightexpr='sum(exp(-extract(epoch from (now() - fave.modified)) / %s))'; if (!empty($this->out->tag)) { $tag = pg_escape_string($this->out->tag); } } else { - $weightexpr='sum(exp(-(now() - fave.modified) / %s))'; if (!empty($this->out->tag)) { $tag = mysql_escape_string($this->out->tag); } } + $weightexpr = common_sql_weight('fave.modified', common_config('popular', 'dropoff')); $qry = "SELECT notice.*, $weightexpr as weight "; if(isset($tag)) { $qry .= 'FROM notice_tag, notice JOIN fave ON notice.id = fave.notice_id ' . @@ -78,7 +78,7 @@ class PopularNoticeSection extends NoticeSection $qry .= ' LIMIT ' . $limit . ' OFFSET ' . $offset; $notice = Memcached_DataObject::cachedQuery('Notice', - sprintf($qry, common_config('popular', 'dropoff')), + $qry, 1200); return $notice; } diff --git a/lib/util.php b/lib/util.php index ed81aeba1..fdcc87677 100644 --- a/lib/util.php +++ b/lib/util.php @@ -908,6 +908,26 @@ function common_sql_date($datetime) return strftime('%Y-%m-%d %H:%M:%S', $datetime); } +/** + * Return an SQL fragment to calculate an age-based weight from a given + * timestamp or datetime column. + * + * @param string $column name of field we're comparing against current time + * @param integer $dropoff divisor for age in seconds before exponentiation + * @return string SQL fragment + */ +function common_sql_weight($column, $dropoff) +{ + if (common_config('db', 'type') == 'pgsql') { + // PostgreSQL doesn't support timestampdiff function. + // @fixme will this use the right time zone? + // @fixme does this handle cross-year subtraction correctly? + return "sum(exp(-extract(epoch from (now() - $column)) / $dropoff))"; + } else { + return "sum(exp(timestampdiff(second, utc_timestamp(), $column) / $dropoff))"; + } +} + function common_redirect($url, $code=307) { static $status = array(301 => "Moved Permanently", -- cgit v1.2.3-54-g00ecf From e668709ce48f366b4477bc62434db28b3e211a33 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 13:02:41 -0800 Subject: drop debug statement --- actions/publictagcloud.php | 1 - 1 file changed, 1 deletion(-) diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index b5b474f13..9e4478dbb 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -132,7 +132,6 @@ class PublictagcloudAction extends Action $this->elementStart('dd'); $this->elementStart('ul', 'tags xoxo tag-cloud'); foreach ($tw as $tag => $weight) { - common_log(LOG_DEBUG, "$weight/$sum"); if ($sum) { $weightedSum = $weight/$sum; } else { -- cgit v1.2.3-54-g00ecf From b5b7a625bab54f90129d9461f923b648a0231b60 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 08:53:28 -1000 Subject: user_id is a non-autoincrement pkey for user_location_prefs --- classes/statusnet.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 4077746c4..ac31148da 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -572,5 +572,5 @@ created = 142 modified = 384 [user_location_prefs__keys] -user_id = U +user_id = K -- cgit v1.2.3-54-g00ecf From 440b9957f9ae6fdfdb44c39074803fcdbc64112d Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 14:24:16 -0800 Subject: Exclude process-specific link & result cache references from serialized Memcached_Data_Object instances. Should fix seemingly-random bugs due to destructor free()ing local resources by mistake. --- classes/Memcached_DataObject.php | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index a77e43d38..d830884b6 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -21,7 +21,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } class Memcached_DataObject extends DB_DataObject { - /** + /** * Destructor to free global memory resources associated with * this data object when it's unset or goes out of scope. * DB_DataObject doesn't do this yet by itself. @@ -35,6 +35,42 @@ class Memcached_DataObject extends DB_DataObject } } + /** + * Magic function called at serialize() time. + * + * We use this to drop a couple process-specific references + * from DB_DataObject which can cause trouble in future + * processes. + * + * @return array of variable names to include in serialization. + */ + function __sleep() + { + $vars = array_keys(get_object_vars($this)); + $skip = array('_DB_resultid', '_link_loaded'); + return array_diff($vars, $skip); + } + + /** + * Magic function called at unserialize() time. + * + * Clean out some process-specific variables which might + * be floating around from a previous process's cached + * objects. + * + * Old cached objects may still have them. + */ + function __wakeup() + { + // Refers to global state info from a previous process. + // Clear this out so we don't accidentally break global + // state in *this* process. + $this->_DB_resultid = null; + + // We don't have any local DBO refs, so clear these out. + $this->_link_loaded = false; + } + /** * Wrapper for DB_DataObject's static lookup using memcached * as backing instead of an in-process cache array. -- cgit v1.2.3-54-g00ecf From 8f02379f6e05e4bf1bff69d6d0fcf3d90a4d1181 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 14:37:39 -0800 Subject: Revert "Take Memcached_DataObject destructor back out to check whether it might be causing some under-the-hood problems." This reverts commit 89cca01259d71f3da961ef64def3647f86a01567. --- classes/Memcached_DataObject.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index b43cb0b56..d89a9421e 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -23,6 +23,20 @@ require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; class Memcached_DataObject extends DB_DataObject { + /** + * Destructor to free global memory resources associated with + * this data object when it's unset or goes out of scope. + * DB_DataObject doesn't do this yet by itself. + */ + + function __destruct() + { + $this->free(); + if (method_exists('DB_DataObject', '__destruct')) { + parent::__destruct(); + } + } + function &staticGet($cls, $k, $v=null) { if (is_null($v)) { -- cgit v1.2.3-54-g00ecf From 78214c4e067616828478d600d500b34b6fcb9061 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 4 Jan 2010 14:38:56 -0800 Subject: Exclude process-specific link & result cache references from serialized Memcached_Data_Object instances. Should fix seemingly-random bugs due to destructor free()ing local resources by mistake. cherry-pick from 0.9.x --- classes/Memcached_DataObject.php | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index d89a9421e..ca360d411 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -37,6 +37,51 @@ class Memcached_DataObject extends DB_DataObject } } + /** + * Magic function called at serialize() time. + * + * We use this to drop a couple process-specific references + * from DB_DataObject which can cause trouble in future + * processes. + * + * @return array of variable names to include in serialization. + */ + function __sleep() + { + $vars = array_keys(get_object_vars($this)); + $skip = array('_DB_resultid', '_link_loaded'); + return array_diff($vars, $skip); + } + + /** + * Magic function called at unserialize() time. + * + * Clean out some process-specific variables which might + * be floating around from a previous process's cached + * objects. + * + * Old cached objects may still have them. + */ + function __wakeup() + { + // Refers to global state info from a previous process. + // Clear this out so we don't accidentally break global + // state in *this* process. + $this->_DB_resultid = null; + + // We don't have any local DBO refs, so clear these out. + $this->_link_loaded = false; + } + + /** + * Wrapper for DB_DataObject's static lookup using memcached + * as backing instead of an in-process cache array. + * + * @param string $cls classname of object type to load + * @param mixed $k key field name, or value for primary key + * @param mixed $v key field value, or leave out for primary key lookup + * @return mixed Memcached_DataObject subtype or false + */ function &staticGet($cls, $k, $v=null) { if (is_null($v)) { -- cgit v1.2.3-54-g00ecf From d59ffeaab53ebf80b031e2810feaad58aff3288f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Mon, 4 Jan 2010 23:36:22 +0000 Subject: Refactored NoticeLocationAttach(). It works better in UAs that don't support Geolocation API. --- js/util.js | 133 +++++++++++++++++++++++++++++++++++-------------------------- 1 file changed, 76 insertions(+), 57 deletions(-) diff --git a/js/util.js b/js/util.js index 2d108118a..0334a41ab 100644 --- a/js/util.js +++ b/js/util.js @@ -442,6 +442,9 @@ var SN = { // StatusNet }, NoticeLocationAttach: function() { + var NLat = $('#'+SN.C.S.NoticeLat).val(); + var NLon = $('#'+SN.C.S.NoticeLon).val(); + function removeNoticeDataGeo() { $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); $('#'+SN.C.S.NoticeDataGeoSelected).hide(); @@ -451,6 +454,36 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeLocationId).val(''); } + function getJSONgeocodeURL(geocodeURL, data) { + $.getJSON(geocodeURL, data, function(location) { + NLN = $('#'+SN.C.S.NoticeLocationName); + NLN.replaceWith(''); + NLN = $('#'+SN.C.S.NoticeLocationName); + + if (typeof(location.location_ns) != 'undefined') { + $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); + } + + if (typeof(location.location_id) != 'undefined') { + $('#'+SN.C.S.NoticeLocationId).val(location.location_id); + } + + if (typeof(location.name) == 'undefined') { + NLN_text = position.coords.latitude + ';' + position.coords.longitude; + } + else { + NLN_text = location.name; + } + + NLN.attr('href', location.url); + NLN.text(NLN_text); + NLN.click(function() { + window.open(location.url); + + return false; + }); + }); + } var NDG = $('#'+SN.C.S.NoticeDataGeo); if (NDG.length > 0) { var NLE = $('#notice_data-location_wrap'); @@ -459,48 +492,48 @@ var SN = { // StatusNet $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', jQuery.trim($('label[for='+SN.C.S.NoticeDataGeo+']').text())); - if (navigator.geolocation) { - NDG.change(function() { - $.cookie(SN.C.S.NoticeLocationCookieName, $('#'+SN.C.S.NoticeDataGeo).attr('checked')); + NDG.change(function() { + $.cookie(SN.C.S.NoticeLocationCookieName, $('#'+SN.C.S.NoticeDataGeo).attr('checked')); - var NLN = $('#'+SN.C.S.NoticeLocationName); - if (NLN.length > 0) { - NLN.remove(); - } + var NLN = $('#'+SN.C.S.NoticeLocationName); + if (NLN.length > 0) { + NLN.remove(); + } + + if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { + $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); var S = '
'; var NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); + if (NDGS.length > 0) { NDGS.replaceWith(S); } else { $('#'+SN.C.S.FormNotice).append(S); } + NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); - NDGS.prepend('Geo'); + NDGS.prepend('Geo '); var NLN = $('#'+SN.C.S.NoticeLocationName); + NLN.addClass('processing'); - if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { - NLN.addClass('processing'); - $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); - - NDGS.append(' '); + $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ + $('#'+SN.C.S.NoticeDataGeoSelected).remove(); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ - $('#'+SN.C.S.NoticeDataGeoSelected).remove(); - $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - - return false; - }); + return false; + }); - $('#'+SN.C.S.NoticeDataGeoSelected+' button.minimize').click(function(){ - $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + $('#'+SN.C.S.NoticeDataGeoSelected+' button.minimize').click(function(){ + $('#'+SN.C.S.NoticeDataGeoSelected).hide(); - return false; - }); + return false; + }); + if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function(position) { $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); @@ -512,34 +545,7 @@ var SN = { // StatusNet 'token': $('#token').val() }; - $.getJSON(geocodeURL, data, function(location) { - NLN = $('#'+SN.C.S.NoticeLocationName); - NLN.replaceWith(''); - NLN = $('#'+SN.C.S.NoticeLocationName); - - if (typeof(location.location_ns) != 'undefined') { - $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); - } - - if (typeof(location.location_id) != 'undefined') { - $('#'+SN.C.S.NoticeLocationId).val(location.location_id); - } - - if (typeof(location.name) == 'undefined') { - NLN_text = position.coords.latitude + ';' + position.coords.longitude; - } - else { - NLN_text = location.name; - } - - NLN.attr('href', location.url); - NLN.text(NLN_text); - NLN.click(function() { - window.open(location.url); - - return false; - }); - }); + getJSONgeocodeURL(geocodeURL, data); }, function(error) { @@ -550,13 +556,26 @@ var SN = { // StatusNet ); } else { - removeNoticeDataGeo(); + if (NLat.length > 0 && NLon.length > 0) { + var data = { + 'lat': NLat, + 'lon': NLon, + 'token': $('#token').val() + }; + + getJSONgeocodeURL(geocodeURL, data); + } } - }).change(); + } + else { + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - NDG.attr('checked', (cookieVal === null || cookieVal == 'true')); - } + removeNoticeDataGeo(); + } + }).change(); + + var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); + NDG.attr('checked', (cookieVal === null || cookieVal == 'true')); } }, -- cgit v1.2.3-54-g00ecf From 9fadfd850e3713e15ea9bf1a097aef4a42b2c1f7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 00:15:26 +0000 Subject: If user checked shared location but didn't enter their location, don't show the checkbox --- js/util.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/js/util.js b/js/util.js index 0334a41ab..feea13b52 100644 --- a/js/util.js +++ b/js/util.js @@ -565,11 +565,13 @@ var SN = { // StatusNet getJSONgeocodeURL(geocodeURL, data); } + else { + removeNoticeDataGeo(); + $('label[for='+SN.C.S.NoticeDataGeo+']').remove(); + } } } else { - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); - removeNoticeDataGeo(); } }).change(); -- cgit v1.2.3-54-g00ecf From db1a7d6f8883b5a37803b656c10305f082fdf270 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 00:37:53 +0000 Subject: Remove input geo data as well --- js/util.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/util.js b/js/util.js index feea13b52..a2212cac2 100644 --- a/js/util.js +++ b/js/util.js @@ -484,6 +484,7 @@ var SN = { // StatusNet }); }); } + var NDG = $('#'+SN.C.S.NoticeDataGeo); if (NDG.length > 0) { var NLE = $('#notice_data-location_wrap'); @@ -567,6 +568,7 @@ var SN = { // StatusNet } else { removeNoticeDataGeo(); + $('#'+SN.C.S.NoticeDataGeo).remove(); $('label[for='+SN.C.S.NoticeDataGeo+']').remove(); } } -- cgit v1.2.3-54-g00ecf From eb9514120a882aacae38f8b85a1f431852b44b89 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 01:15:08 +0000 Subject: Retain the geo data when FormNoticeXHR is complete because form gets reset --- js/util.js | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index a2212cac2..d84d21582 100644 --- a/js/util.js +++ b/js/util.js @@ -178,12 +178,13 @@ var SN = { // StatusNet }, FormNoticeXHR: function(form) { + var NDG, NLat, NLon, NLNS, NLID; form_id = form.attr('id'); form.append(''); form.ajaxForm({ dataType: 'xml', timeout: '60000', - beforeSend: function(xhr) { + beforeSend: function(formData) { if ($('#'+form_id+' #'+SN.C.S.NoticeDataText)[0].value.length === 0) { form.addClass(SN.C.S.Warning); return false; @@ -191,6 +192,13 @@ var SN = { // StatusNet form.addClass(SN.C.S.Processing); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).attr(SN.C.S.Disabled, SN.C.S.Disabled); + + NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); + NLat = $('#'+SN.C.S.NoticeLat).val(); + NLon = $('#'+SN.C.S.NoticeLon).val(); + NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); + NLID = $('#'+SN.C.S.NoticeLocationId).val(); + return true; }, error: function (xhr, textStatus, errorThrown) { @@ -273,6 +281,12 @@ var SN = { // StatusNet form.removeClass(SN.C.S.Processing); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); + + $('#'+SN.C.S.NoticeDataGeo).attr('checked', NDG); + $('#'+SN.C.S.NoticeLat).val(NLat); + $('#'+SN.C.S.NoticeLon).val(NLon); + $('#'+SN.C.S.NoticeLocationNs).val(NLNS); + $('#'+SN.C.S.NoticeLocationId).val(NLID); } }); }, @@ -444,6 +458,8 @@ var SN = { // StatusNet NoticeLocationAttach: function() { var NLat = $('#'+SN.C.S.NoticeLat).val(); var NLon = $('#'+SN.C.S.NoticeLon).val(); + var NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); + var NLID = $('#'+SN.C.S.NoticeLocationId).val(); function removeNoticeDataGeo() { $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); -- cgit v1.2.3-54-g00ecf From a08e683ac3bf07b19d704ac524a2e18804e908a7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 01:31:34 +0000 Subject: Reuse cookie location_enabled before .change() --- js/util.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/js/util.js b/js/util.js index d84d21582..af6e0ff20 100644 --- a/js/util.js +++ b/js/util.js @@ -503,6 +503,9 @@ var SN = { // StatusNet var NDG = $('#'+SN.C.S.NoticeDataGeo); if (NDG.length > 0) { + var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); + NDG.attr('checked', (cookieVal === null || cookieVal == 'true')); + var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); NLE.removeAttr('title'); @@ -593,9 +596,6 @@ var SN = { // StatusNet removeNoticeDataGeo(); } }).change(); - - var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - NDG.attr('checked', (cookieVal === null || cookieVal == 'true')); } }, -- cgit v1.2.3-54-g00ecf From 2960193cc4f9be74713896ddb0e7debb1190c163 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 03:07:26 +0100 Subject: Updated default theme for geo --- theme/default/css/display.css | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 50209bfd3..0c8db45e7 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -111,6 +111,19 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); text-shadow:none; } +.form_notice span#notice_data-location_name { +background-position:0 47%; +} +.form_notice a#notice_data-location_name { +background-position:0 -1711px; +} +.form_notice label[for=notice_data-geo] { +background-position:0 -1780px; +} +.form_notice label[for=notice_data-geo].checked { +background-position:0 -1846px; +} + a, .form_settings input.form_action-primary, .notice-options input, @@ -177,7 +190,10 @@ button.close, .entity_sandbox input.submit, .entity_silence input.submit, .entity_delete input.submit, -.notice-options .repeated { +.notice-options .repeated, +.form_notice a#notice_data-location_name, +.form_notice label[for=notice_data-geo], +button.minimize { background-image:url(../../base/images/icons/icons-01.gif); background-repeat:no-repeat; background-color:transparent; @@ -239,6 +255,9 @@ background-color:#EFF3DC; button.close { background-position:0 -1120px; } +button.minimize { +background-position:0 -1912px; +} #anon_notice { background-color:#87B4C8; -- cgit v1.2.3-54-g00ecf From 0c31c3d80c379c3db1c063e3caba0d450bb83ab7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 4 Jan 2010 22:49:09 -1000 Subject: free some memory in createsim.php --- scripts/createsim.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/scripts/createsim.php b/scripts/createsim.php index 1266a9700..882d74456 100644 --- a/scripts/createsim.php +++ b/scripts/createsim.php @@ -41,9 +41,12 @@ require_once INSTALLDIR.'/scripts/commandline.inc'; function newUser($i) { global $userprefix; - User::register(array('nickname' => sprintf('%s%d', $userprefix, $i), - 'password' => sprintf('password%d', $i), - 'fullname' => sprintf('Test User %d', $i))); + $user = User::register(array('nickname' => sprintf('%s%d', $userprefix, $i), + 'password' => sprintf('password%d', $i), + 'fullname' => sprintf('Test User %d', $i))); + if (!empty($user)) { + $user->free(); + } } function newNotice($i, $tagmax) @@ -73,6 +76,9 @@ function newNotice($i, $tagmax) } $notice = Notice::saveNew($user->id, $content, 'system'); + + $user->free(); + $notice->free(); } function newSub($i) @@ -106,6 +112,9 @@ function newSub($i) } subs_subscribe_to($from, $to); + + $from->free(); + $to->free(); } function main($usercount, $noticeavg, $subsavg, $tagmax) -- cgit v1.2.3-54-g00ecf From f14492fb2e43c1571d91c61e7a7f64e3d19e0427 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 17:49:30 +0100 Subject: Updated Cloudy theme --- theme/cloudy/css/display.css | 486 +++++++++++++++++++++++++++++++------------ 1 file changed, 350 insertions(+), 136 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 3fe05eb3d..84460e022 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -228,6 +228,17 @@ font-weight:bold; address img + .fn { display:none; } +address a { +text-decoration:none; +} +address .poweredby { +float:left; +clear:left; +display:block; +position:relative; +top:7px; +margin-right:-47px; +} #header { width:100%; @@ -486,12 +497,12 @@ cursor:pointer; } #form_notice label[for=notice_data-attach] { text-indent:-9999px; -left:82%; +left:72%; width:16px; height:16px; } #form_notice #notice_data-attach { -left:40%; +left:18%; padding:0; height:16px; } @@ -531,30 +542,69 @@ margin-bottom:7px; margin-left:18px; float:left; } -#form_notice .error, -#form_notice .success { +.form_notice .error, +.form_notice .success { float:left; clear:both; -width:83.5%; +width:81.5%; margin-bottom:0; line-height:1.618; -position:absolute; -top:87px; -left:0; } -#form_notice #notice_data-attach_selected code { +.form_notice #notice_data-attach_selected code, +.form_notice #notice_data-location_name { float:left; -width:90%; +width:80%; display:block; -font-size:1.1em; -line-height:1.8; overflow:auto; +margin-right:2.5%; } -#form_notice #notice_data-attach_selected button { +.form_notice #notice_data-attach_selected code { +font-size:1.1em; +} +.form_notice #notice_data-attach_selected button.close, +.form_notice #notice_data-geo_selected button.close { float:right; font-size:0.8em; } +.form_notice #notice_data-geo_selected button.minimize { +float:left; +} + +.form_notice #notice_data-location_wrap label { +position:absolute; +top:87px; +left:82%; +cursor:pointer; +width:16px; +height:16px; +display:block; +} +.form_notice #notice_data-location_wrap input { +display:none; +} +.form_notice #notice_data-location_wrap label { +font-weight:normal; +font-size:1em; +margin-bottom:0; +text-indent:-9999px; +} +.form_notice #notice_data-location_name { +display:block; +padding-left:21px; +} + +button.close, +button.minimize { +width:16px; +height:16px; +text-indent:-9999px; +padding:0; +border:0; +text-align:center; +font-weight:bold; +cursor:pointer; +} /* entity_profile */ .entity_profile { @@ -854,23 +904,26 @@ text-decoration:underline; } .notice .entry-title { -float:none; +float:left; +width:100%; overflow:hidden; -display:inline; +} +.notice .entry-title.ov { +overflow:visible; } #shownotice .notice .entry-title { font-size:2.2em; } -#conversation .notice .entry-title { -display:block; -width:90%; -} - .notice p.entry-content { display:inline; } +#content .notice p.entry-content a:visited { +border-radius:4px; +-moz-border-radius:4px; +-webkit-border-radius:4px; +} .notice p.entry-content .vcard a { border-radius:4px; -moz-border-radius:4px; @@ -878,23 +931,17 @@ border-radius:4px; } .notice div.entry-content { +clear:left; +float:left; font-size:0.95em; margin-left:59px; -margin-top:3px; -width:70%; -font-family:Georgia, serif; -font-style:italic; -font-size:0.8em; -display:block; +min-width:60%; +max-width:66%; } -.notice div.entry-content a { -text-decoration:none; -} -.notice div.entry-content a:hover { -text-decoration:underline; -} -#showstream .notice div.entry-content { +#showstream .notice div.entry-content, +#shownotice .notice div.entry-content { margin-left:0; +max-width:79%; } .notice .notice-options a, @@ -903,83 +950,84 @@ float:left; font-size:1.025em; } -.notice div.entry-content dl, -.notice div.entry-content dt, -.notice div.entry-content dd { -display:inline; +.notice div.entry-content .timestamp { +display:inline-block; } -.notice div.entry-content .timestamp dt, -.notice div.entry-content .response dt { -display:none; -} -.notice div.entry-content .timestamp a { -display:inline-block; +.entry-content .repeat { +display:block; } -.notice div.entry-content .device dt { -text-transform:lowercase; +.entry-content .repeat .photo { +float:none; +margin-right:1px; +position:relative; +top:4px; +left:0; } +.dialogbox { +position:absolute; +top:-4px; +right:29px; +z-index:9; +min-width:199px; +float:none; +background-color:#FFF; +padding:11px; +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +border-style:solid; +border-width:1px; +border-color:#DDDDDD; +-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); +} +.dialogbox legend { +display:block !important; +margin-right:18px; +} -.notice-data { +.dialogbox button.close { position:absolute; -top:18px; -right:0; -min-height:50px; -margin-bottom:4px; -} -.notice .entry-content .notice-data dt { -display:none; +right:3px; +top:3px; } -.notice-data a { -display:block; -outline:none; +.dialogbox .submit_dialogbox { +text-indent:0; +font-weight:bold; } .notice-options { -padding-left:2%; -float:left; +position:relative; font-size:0.95em; -width:16px; +width:113px; float:right; +margin-right:4px; } -.notices li:hover div.notice-options { -display:block; -} - .notice-options a { float:left; } -.notice-options .notice_delete, .notice-options .notice_reply, +.notice-options .form_repeat, .notice-options .form_favor, -.notice-options .form_disfavor { -position:absolute; +.notice-options .form_disfavor, +.notice-options .repeated { +float:left; +margin-left:14.2%; } .notice-options .form_favor, .notice-options .form_disfavor { -top:7px; -right:7px; -} -.notice-options .notice_reply { -top:30px; -right:7px; -} -.notice-options .notice_delete { -top:47px; -right:7px; +margin-left:0; } - .notice-options input, -.notice-options a { +.notice-options a, +.notice-options .repeated { text-indent:-9999px; outline:none; } - -.notice-options .notice_reply, .notice-options input.submit { display:block; border:0; @@ -987,29 +1035,34 @@ border:0; .notice-options .notice_reply, .notice-options .notice_delete { text-decoration:none; -padding-left:16px; } - -.notice-options .notice_reply .notice_id { -display:none; +.notice .notice-options .notice_delete { +float:right; } - .notice-options form input.submit { width:16px; -padding:2px 0; +height:16px; +padding:0; +border-radius:0; +-moz-border-radius:0; +-webkit-border-radius:0; } - -.notice-options .notice_delete dt, +.notice-options .form_repeat legend, .notice-options .form_favor legend, .notice-options .form_disfavor legend { display:none; } -.notice-options .notice_delete fieldset, +.notice-options .form_repeat fieldset, .notice-options .form_favor fieldset, .notice-options .form_disfavor fieldset { border:0; padding:0; } +.notice-options a, +.notice-options .repeated { +width:16px; +height:16px; +} .notice .attachment { position:relative; @@ -1335,6 +1388,33 @@ clear:both; margin-bottom:0; } +#settings_design_background-image img { +max-width:480px; +max-height:480px; +} + +#settings_design_color .form_data, +#color-picker { +float:left; +} +#settings_design_color .form_data { +width:400px; +margin-right:1%; +} + +#settings_design_color .form_data li { +width:33%; +} +#settings_design_color .form_data label { +float:none; +display:block; +} +#settings_design_color .form_data .swatch { +padding:11px; +margin-left:0; +width:auto; +} + .instructions ul { list-style-position:inside; } @@ -1348,6 +1428,15 @@ display:none; .guide { clear:both; } +#bookmarklet address { +display:none; +} +#bookmarklet .form_notice { +width:auto; +} +#bookmarklet #wrap { +min-width:0; +} #public.user_in #content, #groups.user_in #content, @@ -1432,6 +1521,68 @@ border-color:#ddd; background:none; } + +.form_notice label[for=notice_data-attach], +#export_data li a.rss, +#export_data li a.atom, +#export_data li a.foaf, +.entity_edit a, +.entity_send-a-message a, +.entity_nudge p, +.form_user_nudge input.submit, +.form_user_block input.submit, +.form_user_unblock input.submit, +.form_group_block input.submit, +.form_group_unblock input.submit, +.form_make_admin input.submit, +.notice .attachment, +.notice-options .notice_reply, +.notice-options form.form_favor input.submit, +.notice-options form.form_disfavor input.submit, +.notice-options .notice_delete, +.notice-options form.form_repeat input.submit, +#new_group a, +.pagination .nav_prev a, +.pagination .nav_next a, +button.close, +.form_group_leave input.submit, +.form_user_unsubscribe input.submit, +.form_group_join input.submit, +.form_user_subscribe input.submit, +.entity_subscribe a, +.entity_moderation p, +.entity_sandbox input.submit, +.entity_silence input.submit, +.entity_delete input.submit, +.notice-options .repeated, +.form_notice a#notice_data-location_name, +.form_notice label[for=notice_data-geo], +button.minimize { +background-image:url(../../base/images/icons/icons-01.gif); +background-repeat:no-repeat; +background-color:transparent; +} + +#wrap form.processing input.submit, +.entity_actions a.processing { +background:#FFFFFF url(../../base/images/icons/icon_processing.gif) no-repeat 47% 47%; +cursor:wait; +text-indent:-9999px; +outline:none; +} +.processing { +background-image:url(../../base/images/icons/icon_processing.gif); +background-repeat:no-repeat; +background-position:47% 47%; +} + +button.close { +background-position:0 -1120px; +} +button.minimize { +background-position:0 -1912px; +} + input.submit, #form_notice.warning #notice_text-count, #nav_register a, @@ -1460,7 +1611,10 @@ div.notice-options input, .form_settings input.form_action-primary { color:#0084B4; } - +.notice, +.profile { +border-top-color:#CEE1E9; +} .notice, .profile { border-top-color:#DDFFCC; @@ -1468,6 +1622,25 @@ border-top-color:#DDFFCC; .section .profile { border-top-color:#87B4C8; } +.mark-top { +border-color:#AAAAAA; +} + +.form_notice span#notice_data-location_name { +background-position:0 47%; +} +.form_notice a#notice_data-location_name { +background-position:0 -1711px; +} +.form_notice label[for=notice_data-geo] { +background-position:0 -1780px; +} +.form_notice label[for=notice_data-geo].checked { +background-position:0 -1846px; +} + + + #aside_primary { @@ -1535,77 +1708,90 @@ background-repeat:no-repeat; background-position:0 45%; } #export_data li a.rss { -background-image:url(../../base/images/icons/icon_rss.png); +background-position:0 -130px; } #export_data li a.atom { -background-image:url(../../base/images/icons/icon_atom.png); +background-position:0 -64px; } #export_data li a.foaf { -background-image:url(../../base/images/icons/icon_foaf.gif); +background-position:0 1px; } -.entity_edit a, -.entity_send-a-message a, -.form_user_nudge input.submit, -.form_user_block input.submit, -.form_user_unblock input.submit, -.entity_nudge p { -background-position: 0 40%; -background-repeat: no-repeat; -background-color:transparent; +.form_group_leave input.submit, +.form_user_unsubscribe input.submit { +background-position:5px -1246px; } .form_group_join input.submit, -.form_group_leave input.submit .form_user_subscribe input.submit, -.form_user_unsubscribe input.submit { -background-color:#9BB43E; -color:#fff; -} -.form_user_unsubscribe input.submit, -.form_group_leave input.submit { -background-color:#87B4C8; +.entity_subscribe a { +background-position:5px -1181px; } .entity_edit a { -background-image:url(../images/icons/twotone/green/edit.gif); +background-position: 5px -718px; } .entity_send-a-message a { -background-image:url(../images/icons/twotone/green/quote.gif); +background-position: 5px -852px; } +.entity_send-a-message .form_notice, +.entity_moderation:hover ul { +box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); +-moz-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); +-webkit-box-shadow:3px 7px 5px rgba(194, 194, 194, 0.7); +} + .entity_nudge p, .form_user_nudge input.submit { -background-image:url(../images/icons/twotone/green/mail.gif); +background-position: 5px -785px; } .form_user_block input.submit, -.form_user_unblock input.submit { -background-image:url(../images/icons/twotone/green/shield.gif); +.form_user_unblock input.submit, +.form_group_block input.submit, +.form_group_unblock input.submit { +background-position: 5px -918px; +} +.form_make_admin input.submit { +background-position: 5px -983px; +} +.entity_moderation p { +background-position: 5px -1313px; +} +.entity_sandbox input.submit { +background-position: 5px -1380px; +} +.entity_silence input.submit { +background-position: 5px -1445px; +} +.entity_delete input.submit { +background-position: 5px -1511px; } /* NOTICES */ .notice .attachment { -background:transparent url(../../base/images/icons/twotone/green/clip-02.gif) no-repeat 0 45%; +background-position:0 -394px; } #attachments .attachment { background:none; } - -.notice-options .notice_reply, -.notice-options form input.submit { -background-color:transparent; -} .notice-options .notice_reply { -background:transparent url(../images/icons/icon_reply.gif) no-repeat 0 45%; +background-position:0 -592px; } .notice-options form.form_favor input.submit { -background:transparent url(../images/icons/icon_favourite.gif) no-repeat 0 45%; +background-position:0 -460px; } .notice-options form.form_disfavor input.submit { -background:transparent url(../images/icons/icon_disfavourite.gif) no-repeat 0 45%; +background-position:0 -526px; } .notice-options .notice_delete { -background:transparent url(../images/icons/icon_trash.gif) no-repeat 0 45%; +background-position:0 -658px; +} +.notice-options form.form_repeat input.submit { +background-position:0 -1582px; +} +.notice-options .repeated { +background-position:0 -1648px; } .notices div.entry-content, @@ -1616,19 +1802,34 @@ opacity:0.4; .notices li:hover div.notice-options { opacity:1; } +.opaque { +opacity:1 !important; +} .notices .notices { -background-color:rgba(200, 200, 200, 0.01); +background-color:rgba(200, 200, 200, 0.050); } .notices .notices .notices { -background-color:rgba(200, 200, 200, 0.02); +background-color:rgba(200, 200, 200, 0.100); } .notices .notices .notices .notices { -background-color:rgba(200, 200, 200, 0.03); +background-color:rgba(200, 200, 200, 0.150); } .notices .notices .notices .notices .notices { -background-color:rgba(200, 200, 200, 0.04); +background-color:rgba(200, 200, 200, 0.300); +} +.notice-options a, +.notice-options input { +font-family:sans-serif; +box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +} +#content .notices li:hover { +background-color:rgba(240, 240, 240, 0.2); +} +#conversation .notices li:hover { +background-color:transparent; } - div.entry-content { color:#333; @@ -1647,21 +1848,34 @@ background-color:transparent; #new_group a { -background:transparent url(../../base/images/icons/twotone/green/news.gif) no-repeat 0 45%; +background-position:0 -1054px; } .pagination .nav_prev a, .pagination .nav_next a { background-repeat:no-repeat; -border-color:#DDFFCC; +box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); } .pagination .nav_prev a { -background-image:url(../../base/images/icons/twotone/green/arrow-left.gif); -background-position:10% 45%; +background-position:10% -187px; } .pagination .nav_next a { -background-image:url(../../base/images/icons/twotone/green/arrow-right.gif); -background-position:90% 45%; +background-position:105% -252px; +} +.pagination .nav .processing { +background-image:url(../../base/images/icons/icon_processing.gif); +box-shadow:none; +-moz-box-shadow:none; +-webkit-box-shadow:none; +outline:none; +} +.pagination .nav_next a.processing { +background-position:90% 47%; +} +.pagination .nav_prev a.processing { +background-position:10% 47%; } -- cgit v1.2.3-54-g00ecf From bdbc1e8d87548e8251f4377b6b349184666d13e7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 18:06:12 +0100 Subject: More updates to Cloudy theme layout --- theme/cloudy/css/display.css | 137 +++++++++++++++++++++++++++---------------- 1 file changed, 87 insertions(+), 50 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 84460e022..88513a8fd 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -458,7 +458,7 @@ border-top:0; } #form_notice { -width:505px; +width:515px; line-height:1; position:absolute; top:200px; @@ -474,10 +474,10 @@ display:none; } #form_notice textarea { float:left; -width:505px; +width:94.75%; height:45px; line-height:1.5; -padding:5px; +padding:2.5%; border-width:1px; } #form_notice label { @@ -492,7 +492,7 @@ display:none; #form_notice label[for=notice_data-attach], #form_notice #notice_data-attach { position:absolute; -top:87px; +top:101px; cursor:pointer; } #form_notice label[for=notice_data-attach] { @@ -510,7 +510,7 @@ height:16px; #form_notice .form_note { position:absolute; top:-10px; -right:-10px; +right:0; z-index:9; font-family:Georgia, serif; font-size:1.7em; @@ -525,14 +525,13 @@ line-height:1.15; padding:1px 2px; } -#form_notice #notice_action-submit { +.form_notice #notice_action-submit { width:14%; -height:35px; -padding-top:0; -padding-bottom:0; +height:47px; +padding:0; position:absolute; -bottom:10px; -right:-10px; +bottom:0; +right:0; } #form_notice label[for=to] { margin-top:7px; @@ -573,8 +572,8 @@ float:left; .form_notice #notice_data-location_wrap label { position:absolute; -top:87px; -left:82%; +top:101px; +left:79%; cursor:pointer; width:16px; height:16px; @@ -1584,21 +1583,84 @@ background-position:0 -1912px; } input.submit, -#form_notice.warning #notice_text-count, -#nav_register a, +.form_notice.warning #notice_text-count, .form_settings .form_note, -.entity_remote_subscribe { -background-color:#9BB43E; +.entity_actions a, +.entity_actions input, +.entity_moderation p, +button { +box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); +} +.entity_actions a, +.entity_actions input, +.entity_actions p { +border-color:transparent; +background-color:transparent; } - input:focus, textarea:focus, select:focus, -#form_notice.warning #notice_data-text { +.form_notice.warning #notice_data-text, +.form_notice.warning #notice_text-count, +.form_settings .form_note { border-color:#9BB43E; } +input.submit { +color:#FFFFFF; +} +.entity_actions a, +.entity_actions input, +.entity_actions p { +border-color:transparent; +background-color:transparent; +} +input:focus, textarea:focus, select:focus, +.form_notice.warning #notice_data-text, +.form_notice.warning #notice_text-count, +.form_settings .form_note { +border-color:#9BB43E; +} +input.submit { +color:#FFFFFF; +} +.entity_actions input.submit { +border-color:transparent; +text-shadow:none; +} +.dialogbox .submit_dialogbox, input.submit, -#nav_register a, -.entity_remote_subscribe { -color:#fff; +.form_notice input.submit { +background:#AAAAAA url(../../base/images/illustrations/illu_pattern-01.png) 0 0 repeat-x; +text-shadow:0 1px 0 #FFFFFF; +color:#000000; +border-color:#AAAAAA; +border-top-color:#CCCCCC; +border-left-color:#CCCCCC; +} +.dialogbox .submit_dialogbox:hover, +input.submit:hover { +background-position:0 -5px; +} +.dialogbox .submit_dialogbox:focus, +input.submit:focus { +background-position:0 -15px; +box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); +-moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); +-webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); +text-shadow:none; +} + +.form_notice span#notice_data-location_name { +background-position:0 47%; +} +.form_notice a#notice_data-location_name { +background-position:0 -1711px; +} +.form_notice label[for=notice_data-geo] { +background-position:0 -1780px; +} +.form_notice label[for=notice_data-geo].checked { +background-position:0 -1846px; } a, @@ -1611,6 +1673,7 @@ div.notice-options input, .form_settings input.form_action-primary { color:#0084B4; } + .notice, .profile { border-top-color:#CEE1E9; @@ -1626,23 +1689,6 @@ border-top-color:#87B4C8; border-color:#AAAAAA; } -.form_notice span#notice_data-location_name { -background-position:0 47%; -} -.form_notice a#notice_data-location_name { -background-position:0 -1711px; -} -.form_notice label[for=notice_data-geo] { -background-position:0 -1780px; -} -.form_notice label[for=notice_data-geo].checked { -background-position:0 -1846px; -} - - - - - #aside_primary { background-color:#DDFFCC; } @@ -1899,15 +1945,6 @@ border-color:#FFFF00; #form_notice .form_note { color:#CCC; } -input.submit { -background-color:#eee; -color:#666; -} - -.notices li.hover { -background-color:#F7F7F7; -} - .notice div.entry-content, .notice div.entry-content a { @@ -1933,12 +1970,12 @@ border-color:transparent; color:#4C4C4C; } #site_nav_local_views .current { -border-left-color:#fff; +border-left-color:#FFFFFF; } #site_nav_local_views .current a, #site_nav_global_primary, #footer { -background-color:#fff; +background-color:#FFFFFF; } -- cgit v1.2.3-54-g00ecf From 50185aafbb4b671ad04cff8dd736930d923c2ed0 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 17:38:59 +0000 Subject: Rest of layout styles for Cloudy. --- theme/cloudy/css/display.css | 250 ++++++++++++++++++++++++++++--------------- 1 file changed, 161 insertions(+), 89 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 88513a8fd..0a4c14d96 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -457,7 +457,7 @@ border-right:0; border-top:0; } -#form_notice { +.form_notice { width:515px; line-height:1; position:absolute; @@ -465,66 +465,63 @@ top:200px; left:20px; z-index:9; } -#form_notice fieldset { +.form_notice fieldset { border:0; -padding:0 0 50px 0; +padding:0; +position:relative; } -#form_notice legend { +.form_notice legend { display:none; } -#form_notice textarea { +.form_notice textarea { float:left; -width:94.75%; -height:45px; +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +width:80.789%; +height:67px; line-height:1.5; -padding:2.5%; -border-width:1px; +padding:7px 7px 16px 7px; +position:relative; +z-index:2; } -#form_notice label { +.form_notice label { display:block; float:left; font-size:1.3em; margin-bottom:7px; } -#form_notice #notice_submit label { -display:none; -} -#form_notice label[for=notice_data-attach], -#form_notice #notice_data-attach { +.form_notice label[for=notice_data-attach], +.form_notice #notice_data-attach { position:absolute; -top:101px; +top:25px; +right:10.5%; cursor:pointer; } -#form_notice label[for=notice_data-attach] { +.form_notice label[for=notice_data-attach] { text-indent:-9999px; -left:72%; width:16px; height:16px; } -#form_notice #notice_data-attach { -left:18%; +.form_notice #notice_data-attach { padding:0; height:16px; } - -#form_notice .form_note { +.form_notice .form_note { position:absolute; -top:-10px; -right:0; +bottom:2px; +right:21.715%; z-index:9; -font-family:Georgia, serif; -font-size:1.7em; } -#form_notice .form_note dt { +.form_notice .form_note dt { font-weight:bold; display:none; } -#notice_text-count { +.form_notice #notice_text-count { font-weight:bold; line-height:1.15; padding:1px 2px; } - .form_notice #notice_action-submit { width:14%; height:47px; @@ -533,13 +530,14 @@ position:absolute; bottom:0; right:0; } -#form_notice label[for=to] { +.form_notice label[for=to] { margin-top:7px; } -#form_notice select[id=to] { +.form_notice select[id=to] { margin-bottom:7px; margin-left:18px; float:left; +max-width:322px; } .form_notice .error, .form_notice .success { @@ -572,8 +570,9 @@ float:left; .form_notice #notice_data-location_wrap label { position:absolute; -top:101px; -left:79%; +top:25px; +right:4px; +left:auto; cursor:pointer; width:16px; height:16px; @@ -608,7 +607,7 @@ cursor:pointer; /* entity_profile */ .entity_profile { position:relative; -width:67.702%; +width:68%; min-height:123px; float:left; margin-bottom:18px; @@ -635,7 +634,8 @@ margin-bottom:18px; .entity_profile .entity_location, .entity_profile .entity_url, .entity_profile .entity_note, -.entity_profile .entity_tags { +.entity_profile .entity_tags, +.entity_profile .entity_aliases { margin-left:113px; margin-bottom:4px; } @@ -644,35 +644,44 @@ margin-bottom:4px; .entity_profile .entity_nickname { margin-left:11px; display:inline; -font-weight:bold; } .entity_profile .entity_nickname { margin-left:0; } - -.entity_profile .entity_fn dd:before { +.entity_profile .fn, +.entity_profile .nickname { +font-size:1.1em; +font-weight:bold; +} +.entity_profile .fn:before { content: "("; font-weight:normal; } -.entity_profile .entity_fn dd:after { +.entity_profile .fn:after { content: ")"; font-weight:normal; } - -.entity_profile dt { -display:none; +.entity_profile .nickname:after, +.entity_profile .nickname:before { +content:""; } +.entity_profile dt, .entity_profile h2 { display:none; } +.entity_profile .role { +margin-left:11px; +font-style:italic; +} /* entity_profile */ /*entity_actions*/ .entity_actions { float:right; -margin-left:4.35%; -max-width:25%; +margin-left:2%; +margin-bottom:18px; +min-width:21%; } .entity_actions h2 { display:none; @@ -681,7 +690,7 @@ display:none; list-style-type:none; } .entity_actions li { -margin-bottom:4px; +margin-bottom:7px; } .entity_actions li:first-child { border-top:0; @@ -699,40 +708,95 @@ display:block; text-align:left; width:100%; } -.entity_actions a, -.entity_nudge p, -.entity_remote_subscribe { +.entity_actions a { text-decoration:none; font-weight:bold; display:block; } +.entity_actions a, +.entity_actions input { +border-radius:4px; +-moz-border-radius:4px; +-webkit-border-radius:4px; +} -.form_user_block input.submit, -.form_user_unblock input.submit, -.entity_send-a-message a, -.entity_edit a, -.form_user_nudge input.submit, -.entity_nudge p { -border:0; -padding-left:20px; +.entity_actions a, +.entity_actions input, +.entity_actions p { +border-width:2px; +border-style:solid; +padding-left:23px; } -.entity_edit a, -.entity_send-a-message a, -.entity_nudge p { -padding:4px 4px 4px 23px; +.entity_actions a, +.entity_actions p { +padding:2px 4px 1px 26px; } -.entity_remote_subscribe { -padding:4px; -border-width:2px; +.entity_actions .accept { +margin-bottom:18px; +} + +.entity_send-a-message button { +position:absolute; +top:3px; +right:3px; +} + +.entity_send-a-message .form_notice { +position:absolute; +top:34px; +right:-1px; +padding:1.795%; +width:92%; +z-index:2; + border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; +border-width:1px; border-style:solid; +} +.entity_send-a-message .form_notice legend { +display:block; +margin-bottom:11px; +} + +.entity_send-a-message .form_notice label, +.entity_send-a-message .form_notice select { +display:none; +} +.entity_send-a-message .form_notice input.submit { +text-align:center; +} + +.entity_moderation { +position:relative; +} +.entity_moderation p { border-radius:4px; -moz-border-radius:4px; -webkit-border-radius:4px; +font-weight:bold; +padding-bottom:2px; +margin-bottom:7px; } -.entity_actions .accept { -margin-bottom:18px; +.entity_moderation ul { +display:none; +} +.entity_moderation:hover ul { +display:block; +min-width:21%; +width:100%; +padding:11px; +position:absolute; +top:-1px; +right:-1px; +z-index:1; +border-width:1px; +border-style:solid; +border-radius:7px; +-moz-border-radius:7px; +-webkit-border-radius:7px; } .entity_tags ul { @@ -791,7 +855,6 @@ margin-bottom:0; min-height:60px; } - .profile .form_group_join legend, .profile .form_group_leave legend, .profile .form_user_subscribe legend, @@ -802,18 +865,22 @@ display:none; .profiles { list-style-type:none; } -.profile .entity_profile .entity_location { +.profile .entity_profile .fn.nickname, +.profile .entity_profile .url[rel~=contact] { +margin-left:0; +display:inline; +} + +.profile .entity_profile .fn, +.profile .entity_profile .location { +margin-left:11px; +margin-bottom:4px; width:auto; clear:none; -margin-left:11px; } -.profile .entity_profile dl, -.profile .entity_profile dd { -display:inline; -float:none; -} -.profile .entity_profile .entity_note, -.profile .entity_profile .entity_url, + +.profile .entity_profile .note, +.profile .entity_profile .url, .profile .entity_profile .entity_tags, .profile .entity_profile .form_subscription_edit { margin-left:59px; @@ -826,13 +893,11 @@ display:inline; margin-right:11px; } - .profile .entity_profile .form_subscription_edit label { font-weight:normal; margin-right:11px; } - /* NOTICE */ .notice, .profile { @@ -940,7 +1005,7 @@ max-width:66%; #showstream .notice div.entry-content, #shownotice .notice div.entry-content { margin-left:0; -max-width:79%; +max-width:77%; } .notice .notice-options a, @@ -1664,13 +1729,11 @@ background-position:0 -1846px; } a, -div.notice-options input, -.form_user_block input.submit, -.form_user_unblock input.submit, -.entity_send-a-message a, -.form_user_nudge input.submit, -.entity_nudge p, -.form_settings input.form_action-primary { +.form_settings input.form_action-primary, +.notice-options input, +.entity_actions a, +.entity_actions input, +.entity_moderation p { color:#0084B4; } @@ -1715,11 +1778,13 @@ text-indent:-9999px; #content, #site_nav_local_views a, #aside_primary { -border-color:#fff; +border-color:#FFFFFF; } #content, -#site_nav_local_views .current a { -background-color:#fff; +#site_nav_local_views .current a, +.entity_send-a-message .form_notice, +.entity_moderation:hover ul { +background-color:#FFFFFF; } #site_nav_local_views a { @@ -1763,6 +1828,14 @@ background-position:0 -64px; background-position:0 1px; } +.form_group_join input.submit, +.form_group_leave input.submit, +.form_user_subscribe input.submit, +.form_user_unsubscribe input.submit, +.entity_subscribe a { +background-color:#AAAAAA; +color:#FFFFFF; +} .form_group_leave input.submit, .form_user_unsubscribe input.submit { background-position:5px -1246px; @@ -1813,7 +1886,6 @@ background-position: 5px -1511px; } - /* NOTICES */ .notice .attachment { background-position:0 -394px; -- cgit v1.2.3-54-g00ecf From 3ad6b35d9b2261650fa9b49ba85cfcf6db2718be Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 17:51:29 +0000 Subject: Admin panel layout for Cloudy --- theme/cloudy/css/display.css | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 0a4c14d96..050e72687 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1516,8 +1516,12 @@ min-width:0; #subscriptions.user_in #content, #subscribers.user_in #content, #showgroup.user_in #content, -#conversation.user_in #content { -padding-top:160px; +#conversation.user_in #content, +#siteadminpanel #content, +#designadminpanel #content, +#useradminpanel #content, +#pathsadminpanel #content { +padding-top:170px; } #profilesettings #form_notice, -- cgit v1.2.3-54-g00ecf From 16254c14c8984f457b13c32d2b9bc0baedfde448 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 5 Jan 2010 09:54:43 -0800 Subject: Typo fix in the new default in-process cache; spewed notice warnings on deletion, breaking XHR responses. --- lib/cache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/cache.php b/lib/cache.php index bac3499e5..85e8badc1 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -170,7 +170,7 @@ class Cache $success = false; if (Event::handle('StartCacheDelete', array(&$key, &$success))) { - if (array_key_exists($key, $this->_items[$key])) { + if (array_key_exists($key, $this->_items)) { unset($this->_items[$key]); } $success = true; -- cgit v1.2.3-54-g00ecf From bbef517be5c4d3c7410f4278c58d71826dc41dbe Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Tue, 5 Jan 2010 17:54:51 +0000 Subject: Added adminprofileflag padding for Cloudy --- theme/cloudy/css/display.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 050e72687..92d544977 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1520,7 +1520,8 @@ min-width:0; #siteadminpanel #content, #designadminpanel #content, #useradminpanel #content, -#pathsadminpanel #content { +#pathsadminpanel #content, +#adminprofileflag #content { padding-top:170px; } -- cgit v1.2.3-54-g00ecf From f3a76bbcb71bcb3c389e55d18a163fa9927bcc06 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 5 Jan 2010 13:42:15 -0500 Subject: Fix auth plugin autoregistration issue. --- plugins/Authentication/AuthenticationPlugin.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/Authentication/AuthenticationPlugin.php b/plugins/Authentication/AuthenticationPlugin.php index 75e8d2b76..07f14035d 100644 --- a/plugins/Authentication/AuthenticationPlugin.php +++ b/plugins/Authentication/AuthenticationPlugin.php @@ -146,7 +146,10 @@ abstract class AuthenticationPlugin extends Plugin }else{ $authenticated = $this->checkPassword($nickname, $password); if($authenticated){ - if(Event::handle('AutoRegister', array($nickname, $this->provider_name, &$authenticatedUser))){ + if(! Event::handle('AutoRegister', array($nickname, $this->provider_name, &$authenticatedUser))){ + //unlike most Event::handle lines of code, this one has a ! (not) + //we want to do this if the event *was* handled - this isn't a "default" implementation + //like most code of this form. if($authenticatedUser){ return false; } -- cgit v1.2.3-54-g00ecf From 9e2e0605ed6280daa4d74c4b962e4630d1078d90 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 5 Jan 2010 13:56:22 -0500 Subject: Move Authorization and Authentication plugin structures into core, instead of as plugins. This move makes sense as you can addPlugin('Authentication') for example - these are abstract classes designed to be implemented, not used directly. --- classes/User_username.php | 61 ++++++ lib/authenticationplugin.php | 231 ++++++++++++++++++++ lib/authorizationplugin.php | 105 +++++++++ plugins/Authentication/AuthenticationPlugin.php | 243 --------------------- plugins/Authentication/User_username.php | 61 ------ plugins/Authorization/AuthorizationPlugin.php | 108 --------- .../CasAuthentication/CasAuthenticationPlugin.php | 1 - .../LdapAuthenticationPlugin.php | 1 - .../LdapAuthorization/LdapAuthorizationPlugin.php | 1 - .../ReverseUsernameAuthenticationPlugin.php | 2 - 10 files changed, 397 insertions(+), 417 deletions(-) create mode 100644 classes/User_username.php create mode 100644 lib/authenticationplugin.php create mode 100644 lib/authorizationplugin.php delete mode 100644 plugins/Authentication/AuthenticationPlugin.php delete mode 100644 plugins/Authentication/User_username.php delete mode 100644 plugins/Authorization/AuthorizationPlugin.php diff --git a/classes/User_username.php b/classes/User_username.php new file mode 100644 index 000000000..853fd5cb8 --- /dev/null +++ b/classes/User_username.php @@ -0,0 +1,61 @@ +user_id = $user->id; + $user_username->provider_name = $provider_name; + $user_username->username = $username; + $user_username->created = DB_DataObject_Cast::dateTime(); + if($user_username->insert()){ + return $user_username; + }else{ + return false; + } + } + + function table() { + return array( + 'user_id' => DB_DATAOBJECT_INT, + 'username' => DB_DATAOBJECT_STR, + 'provider_name' => DB_DATAOBJECT_STR , + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + ); + } + + // now define the keys. + function keys() { + return array('provider_name', 'username'); + } + +} diff --git a/lib/authenticationplugin.php b/lib/authenticationplugin.php new file mode 100644 index 000000000..de479a576 --- /dev/null +++ b/lib/authenticationplugin.php @@ -0,0 +1,231 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Superclass for plugins that do authentication + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +abstract class AuthenticationPlugin extends Plugin +{ + //is this plugin authoritative for authentication? + public $authoritative = false; + + //should accounts be automatically created after a successful login attempt? + public $autoregistration = false; + + //can the user change their email address + public $password_changeable=true; + + //unique name for this authentication provider + public $provider_name; + + //------------Auth plugin should implement some (or all) of these methods------------\\ + /** + * Check if a nickname/password combination is valid + * @param username + * @param password + * @return boolean true if the credentials are valid, false if they are invalid. + */ + function checkPassword($username, $password) + { + return false; + } + + /** + * Automatically register a user when they attempt to login with valid credentials. + * User::register($data) is a very useful method for this implementation + * @param username + * @return mixed instance of User, or false (if user couldn't be created) + */ + function autoRegister($username) + { + $registration_data = array(); + $registration_data['nickname'] = $username ; + return User::register($registration_data); + } + + /** + * Change a user's password + * The old password has been verified to be valid by this plugin before this call is made + * @param username + * @param oldpassword + * @param newpassword + * @return boolean true if the password was changed, false if password changing failed for some reason + */ + function changePassword($username,$oldpassword,$newpassword) + { + return false; + } + + //------------Below are the methods that connect StatusNet to the implementing Auth plugin------------\\ + function onInitializePlugin(){ + if(!isset($this->provider_name)){ + throw new Exception("must specify a provider_name for this authentication provider"); + } + } + + /** + * Internal AutoRegister event handler + * @param nickname + * @param provider_name + * @param user - the newly registered user + */ + function onAutoRegister($nickname, $provider_name, &$user) + { + if($provider_name == $this->provider_name && $this->autoregistration){ + $user = $this->autoregister($nickname); + if($user){ + User_username::register($user,$nickname,$this->provider_name); + return false; + } + } + } + + function onStartCheckPassword($nickname, $password, &$authenticatedUser){ + //map the nickname to a username + $user_username = new User_username(); + $user_username->username=$nickname; + $user_username->provider_name=$this->provider_name; + if($user_username->find() && $user_username->fetch()){ + $username = $user_username->username; + $authenticated = $this->checkPassword($username, $password); + if($authenticated){ + $authenticatedUser = User::staticGet('id', $user_username->user_id); + return false; + } + }else{ + $user = User::staticGet('nickname', $nickname); + if($user){ + //make sure a different provider isn't handling this nickname + $user_username = new User_username(); + $user_username->username=$nickname; + if(!$user_username->find()){ + //no other provider claims this username, so it's safe for us to handle it + $authenticated = $this->checkPassword($nickname, $password); + if($authenticated){ + $authenticatedUser = User::staticGet('nickname', $nickname); + User_username::register($authenticatedUser,$nickname,$this->provider_name); + return false; + } + } + }else{ + $authenticated = $this->checkPassword($nickname, $password); + if($authenticated){ + if(! Event::handle('AutoRegister', array($nickname, $this->provider_name, &$authenticatedUser))){ + //unlike most Event::handle lines of code, this one has a ! (not) + //we want to do this if the event *was* handled - this isn't a "default" implementation + //like most code of this form. + if($authenticatedUser){ + return false; + } + } + } + } + } + if($this->authoritative){ + return false; + }else{ + //we're not authoritative, so let other handlers try + return; + } + } + + function onStartChangePassword($user,$oldpassword,$newpassword) + { + if($this->password_changeable){ + $user_username = new User_username(); + $user_username->user_id=$user->id; + $user_username->provider_name=$this->provider_name; + if($user_username->find() && $user_username->fetch()){ + $authenticated = $this->checkPassword($user_username->username, $oldpassword); + if($authenticated){ + $result = $this->changePassword($user_username->username,$oldpassword,$newpassword); + if($result){ + //stop handling of other handlers, because what was requested was done + return false; + }else{ + throw new Exception(_('Password changing failed')); + } + }else{ + if($this->authoritative){ + //since we're authoritative, no other plugin could do this + throw new Exception(_('Password changing failed')); + }else{ + //let another handler try + return null; + } + } + } + }else{ + if($this->authoritative){ + //since we're authoritative, no other plugin could do this + throw new Exception(_('Password changing is not allowed')); + } + } + } + + function onStartAccountSettingsPasswordMenuItem($widget) + { + if($this->authoritative && !$this->password_changeable){ + //since we're authoritative, no other plugin could change passwords, so do not render the menu item + return false; + } + } + + function onCheckSchema() { + $schema = Schema::get(); + $schema->ensureTable('user_username', + array(new ColumnDef('provider_name', 'varchar', + '255', false, 'PRI'), + new ColumnDef('username', 'varchar', + '255', false, 'PRI'), + new ColumnDef('user_id', 'integer', + null, false), + new ColumnDef('created', 'datetime', + null, false), + new ColumnDef('modified', 'timestamp'))); + return true; + } + + function onUserDeleteRelated($user, &$tables) + { + $tables[] = 'User_username'; + return true; + } +} + diff --git a/lib/authorizationplugin.php b/lib/authorizationplugin.php new file mode 100644 index 000000000..733b0c065 --- /dev/null +++ b/lib/authorizationplugin.php @@ -0,0 +1,105 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Superclass for plugins that do authorization + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +abstract class AuthorizationPlugin extends Plugin +{ + //is this plugin authoritative for authorization? + public $authoritative = false; + + //------------Auth plugin should implement some (or all) of these methods------------\\ + + /** + * Is a user allowed to log in? + * @param user + * @return boolean true if the user is allowed to login, false if explicitly not allowed to login, null if we don't explicitly allow or deny login + */ + function loginAllowed($user) { + return null; + } + + /** + * Does a profile grant the user a named role? + * @param profile + * @return boolean true if the profile has the role, false if not + */ + function hasRole($profile, $name) { + return false; + } + + //------------Below are the methods that connect StatusNet to the implementing Auth plugin------------\\ + + function onStartSetUser(&$user) { + $loginAllowed = $this->loginAllowed($user); + if($loginAllowed === true){ + return; + }else if($loginAllowed === false){ + $user = null; + return false; + }else{ + if($this->authoritative) { + $user = null; + return false; + }else{ + return; + } + } + } + + function onStartSetApiUser(&$user) { + return $this->onStartSetUser(&$user); + } + + function onStartHasRole($profile, $name, &$has_role) { + if($this->hasRole($profile, $name)){ + $has_role = true; + return false; + }else{ + if($this->authoritative) { + $has_role = false; + return false; + }else{ + return; + } + } + } +} + diff --git a/plugins/Authentication/AuthenticationPlugin.php b/plugins/Authentication/AuthenticationPlugin.php deleted file mode 100644 index 07f14035d..000000000 --- a/plugins/Authentication/AuthenticationPlugin.php +++ /dev/null @@ -1,243 +0,0 @@ -. - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -/** - * Superclass for plugins that do authentication - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -abstract class AuthenticationPlugin extends Plugin -{ - //is this plugin authoritative for authentication? - public $authoritative = false; - - //should accounts be automatically created after a successful login attempt? - public $autoregistration = false; - - //can the user change their email address - public $password_changeable=true; - - //unique name for this authentication provider - public $provider_name; - - //------------Auth plugin should implement some (or all) of these methods------------\\ - /** - * Check if a nickname/password combination is valid - * @param username - * @param password - * @return boolean true if the credentials are valid, false if they are invalid. - */ - function checkPassword($username, $password) - { - return false; - } - - /** - * Automatically register a user when they attempt to login with valid credentials. - * User::register($data) is a very useful method for this implementation - * @param username - * @return mixed instance of User, or false (if user couldn't be created) - */ - function autoRegister($username) - { - $registration_data = array(); - $registration_data['nickname'] = $username ; - return User::register($registration_data); - } - - /** - * Change a user's password - * The old password has been verified to be valid by this plugin before this call is made - * @param username - * @param oldpassword - * @param newpassword - * @return boolean true if the password was changed, false if password changing failed for some reason - */ - function changePassword($username,$oldpassword,$newpassword) - { - return false; - } - - //------------Below are the methods that connect StatusNet to the implementing Auth plugin------------\\ - function onInitializePlugin(){ - if(!isset($this->provider_name)){ - throw new Exception("must specify a provider_name for this authentication provider"); - } - } - - /** - * Internal AutoRegister event handler - * @param nickname - * @param provider_name - * @param user - the newly registered user - */ - function onAutoRegister($nickname, $provider_name, &$user) - { - if($provider_name == $this->provider_name && $this->autoregistration){ - $user = $this->autoregister($nickname); - if($user){ - User_username::register($user,$nickname,$this->provider_name); - return false; - } - } - } - - function onStartCheckPassword($nickname, $password, &$authenticatedUser){ - //map the nickname to a username - $user_username = new User_username(); - $user_username->username=$nickname; - $user_username->provider_name=$this->provider_name; - if($user_username->find() && $user_username->fetch()){ - $username = $user_username->username; - $authenticated = $this->checkPassword($username, $password); - if($authenticated){ - $authenticatedUser = User::staticGet('id', $user_username->user_id); - return false; - } - }else{ - $user = User::staticGet('nickname', $nickname); - if($user){ - //make sure a different provider isn't handling this nickname - $user_username = new User_username(); - $user_username->username=$nickname; - if(!$user_username->find()){ - //no other provider claims this username, so it's safe for us to handle it - $authenticated = $this->checkPassword($nickname, $password); - if($authenticated){ - $authenticatedUser = User::staticGet('nickname', $nickname); - User_username::register($authenticatedUser,$nickname,$this->provider_name); - return false; - } - } - }else{ - $authenticated = $this->checkPassword($nickname, $password); - if($authenticated){ - if(! Event::handle('AutoRegister', array($nickname, $this->provider_name, &$authenticatedUser))){ - //unlike most Event::handle lines of code, this one has a ! (not) - //we want to do this if the event *was* handled - this isn't a "default" implementation - //like most code of this form. - if($authenticatedUser){ - return false; - } - } - } - } - } - if($this->authoritative){ - return false; - }else{ - //we're not authoritative, so let other handlers try - return; - } - } - - function onStartChangePassword($user,$oldpassword,$newpassword) - { - if($this->password_changeable){ - $user_username = new User_username(); - $user_username->user_id=$user->id; - $user_username->provider_name=$this->provider_name; - if($user_username->find() && $user_username->fetch()){ - $authenticated = $this->checkPassword($user_username->username, $oldpassword); - if($authenticated){ - $result = $this->changePassword($user_username->username,$oldpassword,$newpassword); - if($result){ - //stop handling of other handlers, because what was requested was done - return false; - }else{ - throw new Exception(_('Password changing failed')); - } - }else{ - if($this->authoritative){ - //since we're authoritative, no other plugin could do this - throw new Exception(_('Password changing failed')); - }else{ - //let another handler try - return null; - } - } - } - }else{ - if($this->authoritative){ - //since we're authoritative, no other plugin could do this - throw new Exception(_('Password changing is not allowed')); - } - } - } - - function onStartAccountSettingsPasswordMenuItem($widget) - { - if($this->authoritative && !$this->password_changeable){ - //since we're authoritative, no other plugin could change passwords, so do not render the menu item - return false; - } - } - - function onAutoload($cls) - { - switch ($cls) - { - case 'User_username': - require_once(INSTALLDIR.'/plugins/Authentication/User_username.php'); - return false; - default: - return true; - } - } - - function onCheckSchema() { - $schema = Schema::get(); - $schema->ensureTable('user_username', - array(new ColumnDef('provider_name', 'varchar', - '255', false, 'PRI'), - new ColumnDef('username', 'varchar', - '255', false, 'PRI'), - new ColumnDef('user_id', 'integer', - null, false), - new ColumnDef('created', 'datetime', - null, false), - new ColumnDef('modified', 'timestamp'))); - return true; - } - - function onUserDeleteRelated($user, &$tables) - { - $tables[] = 'User_username'; - return true; - } -} - diff --git a/plugins/Authentication/User_username.php b/plugins/Authentication/User_username.php deleted file mode 100644 index 853fd5cb8..000000000 --- a/plugins/Authentication/User_username.php +++ /dev/null @@ -1,61 +0,0 @@ -user_id = $user->id; - $user_username->provider_name = $provider_name; - $user_username->username = $username; - $user_username->created = DB_DataObject_Cast::dateTime(); - if($user_username->insert()){ - return $user_username; - }else{ - return false; - } - } - - function table() { - return array( - 'user_id' => DB_DATAOBJECT_INT, - 'username' => DB_DATAOBJECT_STR, - 'provider_name' => DB_DATAOBJECT_STR , - 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME - ); - } - - // now define the keys. - function keys() { - return array('provider_name', 'username'); - } - -} diff --git a/plugins/Authorization/AuthorizationPlugin.php b/plugins/Authorization/AuthorizationPlugin.php deleted file mode 100644 index e4e046d08..000000000 --- a/plugins/Authorization/AuthorizationPlugin.php +++ /dev/null @@ -1,108 +0,0 @@ -. - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -/** - * Superclass for plugins that do authorization - * - * @category Plugin - * @package StatusNet - * @author Craig Andrews - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -abstract class AuthorizationPlugin extends Plugin -{ - //is this plugin authoritative for authorization? - public $authoritative = false; - - //------------Auth plugin should implement some (or all) of these methods------------\\ - - /** - * Is a user allowed to log in? - * @param user - * @return boolean true if the user is allowed to login, false if explicitly not allowed to login, null if we don't explicitly allow or deny login - */ - function loginAllowed($user) { - return null; - } - - /** - * Does a profile grant the user a named role? - * @param profile - * @return boolean true if the profile has the role, false if not - */ - function hasRole($profile, $name) { - return false; - } - - //------------Below are the methods that connect StatusNet to the implementing Auth plugin------------\\ - function onInitializePlugin(){ - - } - - function onStartSetUser(&$user) { - $loginAllowed = $this->loginAllowed($user); - if($loginAllowed === true){ - return; - }else if($loginAllowed === false){ - $user = null; - return false; - }else{ - if($this->authoritative) { - $user = null; - return false; - }else{ - return; - } - } - } - - function onStartSetApiUser(&$user) { - return $this->onStartSetUser(&$user); - } - - function onStartHasRole($profile, $name, &$has_role) { - if($this->hasRole($profile, $name)){ - $has_role = true; - return false; - }else{ - if($this->authoritative) { - $has_role = false; - return false; - }else{ - return; - } - } - } -} - diff --git a/plugins/CasAuthentication/CasAuthenticationPlugin.php b/plugins/CasAuthentication/CasAuthenticationPlugin.php index 8f29c7d2a..26f21af16 100644 --- a/plugins/CasAuthentication/CasAuthenticationPlugin.php +++ b/plugins/CasAuthentication/CasAuthenticationPlugin.php @@ -34,7 +34,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { // We bundle the phpCAS library... set_include_path(get_include_path() . PATH_SEPARATOR . dirname(__FILE__) . '/extlib/CAS'); -require_once INSTALLDIR.'/plugins/Authentication/AuthenticationPlugin.php'; class CasAuthenticationPlugin extends AuthenticationPlugin { public $server; diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index 39967fe42..af42be761 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -31,7 +31,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/plugins/Authentication/AuthenticationPlugin.php'; require_once 'Net/LDAP2.php'; class LdapAuthenticationPlugin extends AuthenticationPlugin diff --git a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php index 5e759c379..7673e61ef 100644 --- a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php +++ b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php @@ -31,7 +31,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/plugins/Authorization/AuthorizationPlugin.php'; require_once 'Net/LDAP2.php'; class LdapAuthorizationPlugin extends AuthorizationPlugin diff --git a/plugins/ReverseUsernameAuthentication/ReverseUsernameAuthenticationPlugin.php b/plugins/ReverseUsernameAuthentication/ReverseUsernameAuthenticationPlugin.php index d48283b2e..d157ea067 100644 --- a/plugins/ReverseUsernameAuthentication/ReverseUsernameAuthenticationPlugin.php +++ b/plugins/ReverseUsernameAuthentication/ReverseUsernameAuthenticationPlugin.php @@ -31,8 +31,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } -require_once INSTALLDIR.'/plugins/Authentication/AuthenticationPlugin.php'; - class ReverseUsernameAuthenticationPlugin extends AuthenticationPlugin { //---interface implementation---// -- cgit v1.2.3-54-g00ecf From 7e01bb8d4f9036a7e1638aa7ba325f7660b5b086 Mon Sep 17 00:00:00 2001 From: Siebrand Mazeland Date: Tue, 5 Jan 2010 23:21:35 +0100 Subject: Localisation updates for !StatusNet from !translatewiki.net !sntrans --- locale/ar/LC_MESSAGES/statusnet.po | 18 +- locale/arz/LC_MESSAGES/statusnet.po | 18 +- locale/bg/LC_MESSAGES/statusnet.po | 18 +- locale/ca/LC_MESSAGES/statusnet.po | 18 +- locale/cs/LC_MESSAGES/statusnet.po | 18 +- locale/de/LC_MESSAGES/statusnet.po | 36 +- locale/el/LC_MESSAGES/statusnet.po | 18 +- locale/en_GB/LC_MESSAGES/statusnet.po | 18 +- locale/es/LC_MESSAGES/statusnet.po | 18 +- locale/fa/LC_MESSAGES/statusnet.po | 18 +- locale/fi/LC_MESSAGES/statusnet.po | 18 +- locale/fr/LC_MESSAGES/statusnet.po | 18 +- locale/ga/LC_MESSAGES/statusnet.po | 18 +- locale/he/LC_MESSAGES/statusnet.po | 18 +- locale/hsb/LC_MESSAGES/statusnet.po | 18 +- locale/ia/LC_MESSAGES/statusnet.po | 18 +- locale/is/LC_MESSAGES/statusnet.po | 18 +- locale/it/LC_MESSAGES/statusnet.po | 18 +- locale/ja/LC_MESSAGES/statusnet.po | 719 +++++++++++++++++++--------------- locale/ko/LC_MESSAGES/statusnet.po | 18 +- locale/mk/LC_MESSAGES/statusnet.po | 106 +++-- locale/nb/LC_MESSAGES/statusnet.po | 18 +- locale/nl/LC_MESSAGES/statusnet.po | 18 +- locale/nn/LC_MESSAGES/statusnet.po | 18 +- locale/pl/LC_MESSAGES/statusnet.po | 18 +- locale/pt/LC_MESSAGES/statusnet.po | 18 +- locale/pt_BR/LC_MESSAGES/statusnet.po | 18 +- locale/ru/LC_MESSAGES/statusnet.po | 18 +- locale/statusnet.po | 12 +- locale/sv/LC_MESSAGES/statusnet.po | 18 +- locale/te/LC_MESSAGES/statusnet.po | 27 +- locale/tr/LC_MESSAGES/statusnet.po | 18 +- locale/uk/LC_MESSAGES/statusnet.po | 18 +- locale/vi/LC_MESSAGES/statusnet.po | 18 +- locale/zh_CN/LC_MESSAGES/statusnet.po | 18 +- locale/zh_TW/LC_MESSAGES/statusnet.po | 16 +- 36 files changed, 933 insertions(+), 523 deletions(-) diff --git a/locale/ar/LC_MESSAGES/statusnet.po b/locale/ar/LC_MESSAGES/statusnet.po index 65615afd1..68a1ff2fc 100644 --- a/locale/ar/LC_MESSAGES/statusnet.po +++ b/locale/ar/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:16+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:28+0000\n" "Language-Team: Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: out-statusnet\n" @@ -2473,7 +2473,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "سحابة الوسوم" @@ -4133,6 +4133,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "وسوم هذا المرفق" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "تغيير كلمة السر" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "تغيير كلمة السر" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "نتائج الأمر" diff --git a/locale/arz/LC_MESSAGES/statusnet.po b/locale/arz/LC_MESSAGES/statusnet.po index e37d38882..26d2f4ffc 100644 --- a/locale/arz/LC_MESSAGES/statusnet.po +++ b/locale/arz/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:19+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:34+0000\n" "Language-Team: Egyptian Spoken Arabic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: arz\n" "X-Message-Group: out-statusnet\n" @@ -2472,7 +2472,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "سحابه الوسوم" @@ -4132,6 +4132,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "وسوم هذا المرفق" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "تغيير كلمه السر" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "تغيير كلمه السر" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "نتائج الأمر" diff --git a/locale/bg/LC_MESSAGES/statusnet.po b/locale/bg/LC_MESSAGES/statusnet.po index 554dfbd0c..cf881f17b 100644 --- a/locale/bg/LC_MESSAGES/statusnet.po +++ b/locale/bg/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:23+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:40+0000\n" "Language-Team: Bulgarian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: bg\n" "X-Message-Group: out-statusnet\n" @@ -2567,7 +2567,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4303,6 +4303,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Паролата е записана." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Паролата е записана." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Резултат от командата" diff --git a/locale/ca/LC_MESSAGES/statusnet.po b/locale/ca/LC_MESSAGES/statusnet.po index b6e079c61..7022f4fad 100644 --- a/locale/ca/LC_MESSAGES/statusnet.po +++ b/locale/ca/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:26+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:44+0000\n" "Language-Team: Catalan\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: out-statusnet\n" @@ -2600,7 +2600,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Núvol d'etiquetes" @@ -4354,6 +4354,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "Etiquetes de l'adjunció" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Contrasenya canviada." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Contrasenya canviada." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultats de les comandes" diff --git a/locale/cs/LC_MESSAGES/statusnet.po b/locale/cs/LC_MESSAGES/statusnet.po index 103cf1557..73ffd3265 100644 --- a/locale/cs/LC_MESSAGES/statusnet.po +++ b/locale/cs/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:29+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:48+0000\n" "Language-Team: Czech\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: cs\n" "X-Message-Group: out-statusnet\n" @@ -2575,7 +2575,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4318,6 +4318,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Heslo uloženo" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Heslo uloženo" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/de/LC_MESSAGES/statusnet.po b/locale/de/LC_MESSAGES/statusnet.po index 01eeccdf9..80498e5d1 100644 --- a/locale/de/LC_MESSAGES/statusnet.po +++ b/locale/de/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:32+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:52+0000\n" "Language-Team: German\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: out-statusnet\n" @@ -196,9 +196,8 @@ msgid "Could not update your design." msgstr "Konnte Benutzerdesign nicht aktualisieren." #: actions/apiblockcreate.php:105 -#, fuzzy msgid "You cannot block yourself!" -msgstr "Du kannst dich nicht selbst entfolgen!" +msgstr "Du kannst dich nicht selbst sperren!" #: actions/apiblockcreate.php:126 msgid "Block user failed." @@ -383,7 +382,7 @@ msgstr "Nutzername „%s“ wird bereits verwendet. Suche dir einen anderen aus. #: actions/apigroupcreate.php:286 actions/editgroup.php:234 #: actions/newgroup.php:178 msgid "Alias can't be the same as nickname." -msgstr "" +msgstr "Alias kann nicht das gleiche wie der Spitznamen sein." #: actions/apigroupismember.php:95 actions/apigroupjoin.php:104 #: actions/apigroupleave.php:104 actions/apigroupmembership.php:91 @@ -452,9 +451,8 @@ msgid "Cannot repeat your own notice." msgstr "Konnte Benachrichtigung nicht aktivieren." #: actions/apistatusesretweet.php:91 -#, fuzzy msgid "Already repeated that notice." -msgstr "Nachricht löschen" +msgstr "Nachricht bereits wiederholt" #: actions/apistatusesshow.php:138 msgid "Status deleted." @@ -531,7 +529,7 @@ msgstr "%s Nachrichten von allen!" #: actions/apitimelineretweetedbyme.php:112 #, php-format msgid "Repeated by %s" -msgstr "" +msgstr "Von %s wiederholt" #: actions/apitimelineretweetedtome.php:111 #, fuzzy, php-format @@ -1274,24 +1272,20 @@ msgid "A selection of some great users on %s" msgstr "Eine Auswahl der tollen Benutzer auf %s" #: actions/file.php:34 -#, fuzzy msgid "No notice ID." -msgstr "Keine Nachricht" +msgstr "Keine Nachrichten ID" #: actions/file.php:38 -#, fuzzy msgid "No notice." msgstr "Keine Nachricht" #: actions/file.php:42 -#, fuzzy msgid "No attachments." msgstr "Keine Anhänge vorhanden" #: actions/file.php:51 -#, fuzzy msgid "No uploaded attachments." -msgstr "Kein solcher Anhang." +msgstr "Kein Anhang geladen." #: actions/finishremotesubscribe.php:69 msgid "Not expecting this response!" @@ -2593,7 +2587,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Tag-Wolke" @@ -4365,6 +4359,16 @@ msgstr "Nachrichten in denen dieser Anhang erscheint" msgid "Tags for this attachment" msgstr "Tags für diesen Anhang" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Passwort geändert" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Passwort geändert" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Befehl-Ergebnisse" diff --git a/locale/el/LC_MESSAGES/statusnet.po b/locale/el/LC_MESSAGES/statusnet.po index fb9f0f43e..33c1a818f 100644 --- a/locale/el/LC_MESSAGES/statusnet.po +++ b/locale/el/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:35+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:10:56+0000\n" "Language-Team: Greek\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: el\n" "X-Message-Group: out-statusnet\n" @@ -2532,7 +2532,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4238,6 +4238,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Ο κωδικός αποθηκεύτηκε." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Ο κωδικός αποθηκεύτηκε." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/en_GB/LC_MESSAGES/statusnet.po b/locale/en_GB/LC_MESSAGES/statusnet.po index d8f729fcd..61660c2fd 100644 --- a/locale/en_GB/LC_MESSAGES/statusnet.po +++ b/locale/en_GB/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:38+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:01+0000\n" "Language-Team: British English\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: en-gb\n" "X-Message-Group: out-statusnet\n" @@ -2597,7 +2597,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Tag cloud" @@ -4350,6 +4350,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Password change" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Password change" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Command results" diff --git a/locale/es/LC_MESSAGES/statusnet.po b/locale/es/LC_MESSAGES/statusnet.po index 96c6fac13..93320db27 100644 --- a/locale/es/LC_MESSAGES/statusnet.po +++ b/locale/es/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:41+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:06+0000\n" "Language-Team: Spanish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: out-statusnet\n" @@ -2627,7 +2627,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Nube de tags" @@ -4413,6 +4413,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Cambio de contraseña " + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Cambio de contraseña " + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultados de comando" diff --git a/locale/fa/LC_MESSAGES/statusnet.po b/locale/fa/LC_MESSAGES/statusnet.po index 3deef9f2e..bce137a35 100644 --- a/locale/fa/LC_MESSAGES/statusnet.po +++ b/locale/fa/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:48+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:18+0000\n" "Last-Translator: Ahmad Sufi Mahmudi\n" "Language-Team: Persian\n" "MIME-Version: 1.0\n" @@ -20,7 +20,7 @@ msgstr "" "X-Language-Code: fa\n" "X-Message-Group: out-statusnet\n" "Plural-Forms: nplurals=1; plural=0;\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" #: actions/all.php:63 actions/public.php:97 actions/replies.php:92 @@ -2532,7 +2532,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4201,6 +4201,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "تغییر گذرواژه" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "تغییر گذرواژه" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "نتیجه دستور" diff --git a/locale/fi/LC_MESSAGES/statusnet.po b/locale/fi/LC_MESSAGES/statusnet.po index d65283943..ece1dfee1 100644 --- a/locale/fi/LC_MESSAGES/statusnet.po +++ b/locale/fi/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:45+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:14+0000\n" "Language-Team: Finnish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: out-statusnet\n" @@ -2611,7 +2611,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Tagipilvi" @@ -4389,6 +4389,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Salasanan vaihto" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Salasanan vaihto" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Komennon tulos" diff --git a/locale/fr/LC_MESSAGES/statusnet.po b/locale/fr/LC_MESSAGES/statusnet.po index 1f0cb61fc..0dda77224 100644 --- a/locale/fr/LC_MESSAGES/statusnet.po +++ b/locale/fr/LC_MESSAGES/statusnet.po @@ -13,12 +13,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:51+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:23+0000\n" "Language-Team: French\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: out-statusnet\n" @@ -2635,7 +2635,7 @@ msgstr "" "Pourquoi ne pas [créer un compte](%%action.register%%) et être le premier à " "en poster un !" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Nuage de marques" @@ -4420,6 +4420,16 @@ msgstr "Avis sur lesquels cette pièce jointe apparaît." msgid "Tags for this attachment" msgstr "Marques de cette pièce jointe" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Modification du mot de passe" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Modification du mot de passe" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Résultats de la commande" diff --git a/locale/ga/LC_MESSAGES/statusnet.po b/locale/ga/LC_MESSAGES/statusnet.po index 70c96bef5..00e8c6b89 100644 --- a/locale/ga/LC_MESSAGES/statusnet.po +++ b/locale/ga/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:54+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:28+0000\n" "Language-Team: Irish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ga\n" "X-Message-Group: out-statusnet\n" @@ -2662,7 +2662,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4477,6 +4477,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Contrasinal gardada." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Contrasinal gardada." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultados do comando" diff --git a/locale/he/LC_MESSAGES/statusnet.po b/locale/he/LC_MESSAGES/statusnet.po index 2249462bb..97c2dc823 100644 --- a/locale/he/LC_MESSAGES/statusnet.po +++ b/locale/he/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:37:59+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:31+0000\n" "Language-Team: Hebrew\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: out-statusnet\n" @@ -2586,7 +2586,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4323,6 +4323,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "הסיסמה נשמרה." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "הסיסמה נשמרה." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/hsb/LC_MESSAGES/statusnet.po b/locale/hsb/LC_MESSAGES/statusnet.po index e2ba2677f..e12652087 100644 --- a/locale/hsb/LC_MESSAGES/statusnet.po +++ b/locale/hsb/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:02+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:35+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: hsb\n" "X-Message-Group: out-statusnet\n" @@ -2473,7 +2473,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4125,6 +4125,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Hesło změnjene" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Hesło změnjene" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/ia/LC_MESSAGES/statusnet.po b/locale/ia/LC_MESSAGES/statusnet.po index 1b1b0810f..adb2fb764 100644 --- a/locale/ia/LC_MESSAGES/statusnet.po +++ b/locale/ia/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:05+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:39+0000\n" "Language-Team: Interlingua\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: out-statusnet\n" @@ -2603,7 +2603,7 @@ msgstr "" "Proque non [registrar un conto](%%action.register%%) e devenir le prime a " "publicar un?" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Etiquettario" @@ -4332,6 +4332,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Cambio del contrasigno" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Cambio del contrasigno" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/is/LC_MESSAGES/statusnet.po b/locale/is/LC_MESSAGES/statusnet.po index 60498bc09..3092d2e99 100644 --- a/locale/is/LC_MESSAGES/statusnet.po +++ b/locale/is/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:08+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:42+0000\n" "Language-Team: Icelandic\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: is\n" "X-Message-Group: out-statusnet\n" @@ -2593,7 +2593,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Merkjaský" @@ -4348,6 +4348,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Lykilorðabreyting" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Lykilorðabreyting" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Niðurstöður skipunar" diff --git a/locale/it/LC_MESSAGES/statusnet.po b/locale/it/LC_MESSAGES/statusnet.po index 150c769d4..5c025c4c0 100644 --- a/locale/it/LC_MESSAGES/statusnet.po +++ b/locale/it/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:12+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:47+0000\n" "Language-Team: Italian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: it\n" "X-Message-Group: out-statusnet\n" @@ -2604,7 +2604,7 @@ msgid "" "one!" msgstr "Perché non [crei un accout](%%action.register%%) e ne scrivi uno tu!" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Insieme delle etichette" @@ -4374,6 +4374,16 @@ msgstr "Messaggi in cui appare questo allegato" msgid "Tags for this attachment" msgstr "Etichette per questo allegato" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Modifica password" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Modifica password" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Risultati comando" diff --git a/locale/ja/LC_MESSAGES/statusnet.po b/locale/ja/LC_MESSAGES/statusnet.po index 9f8b7e590..9e4fe43c7 100644 --- a/locale/ja/LC_MESSAGES/statusnet.po +++ b/locale/ja/LC_MESSAGES/statusnet.po @@ -11,12 +11,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:15+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:50+0000\n" "Language-Team: Japanese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: out-statusnet\n" @@ -661,16 +661,20 @@ msgid "Block user" msgstr "ブロック利用者" #: actions/block.php:130 +#, fuzzy msgid "" "Are you sure you want to block this user? Afterwards, they will be " "unsubscribed from you, unable to subscribe to you in the future, and you " "will not be notified of any @-replies from them." msgstr "" +"あなたはこのユーザをブロックしたいのを確信していますか? その後、それらはあな" +"たからフォローを外されるでしょう、将来、あなたにフォローできないで、あなたは" +"どんな @-返信 についてもそれらから通知されないでしょう。" #: actions/block.php:143 actions/deletenotice.php:145 #: actions/deleteuser.php:147 actions/groupblock.php:178 msgid "No" -msgstr "" +msgstr "No" #: actions/block.php:143 actions/deleteuser.php:147 msgid "Do not block this user" @@ -680,7 +684,7 @@ msgstr "このユーザをアンブロックする" #: actions/deleteuser.php:148 actions/groupblock.php:179 #: lib/repeatform.php:132 msgid "Yes" -msgstr "" +msgstr "Yes" #: actions/block.php:144 actions/groupmembers.php:346 lib/blockform.php:80 msgid "Block this user" @@ -805,6 +809,8 @@ msgid "" "You are about to permanently delete a notice. Once this is done, it cannot " "be undone." msgstr "" +"あなたは永久につぶやきを削除しようとしています。 これが完了するとそれを元に戻" +"すことはできません。" #: actions/deletenotice.php:109 actions/deletenotice.php:141 msgid "Delete notice" @@ -843,6 +849,8 @@ msgid "" "Are you sure you want to delete this user? This will clear all data about " "the user from the database, without a backup." msgstr "" +"あなたは本当にこの利用者を削除したいですか? これはバックアップなしでデータ" +"ベースから利用者に関するすべてのデータをクリアします。" #: actions/deleteuser.php:148 lib/deleteuserform.php:77 msgid "Delete this user" @@ -1077,7 +1085,7 @@ msgstr "投稿のための新しいEメールアドレスを作ります; 古い #: actions/emailsettings.php:148 actions/smssettings.php:164 msgid "New" -msgstr "" +msgstr "New" #: actions/emailsettings.php:153 actions/imsettings.php:139 #: actions/smssettings.php:169 @@ -1227,6 +1235,8 @@ msgid "" "Be the first to add a notice to your favorites by clicking the fave button " "next to any notice you like." msgstr "" +"あなたの好きなつぶやきを、お気に入りボタンをクリックしてあなたのお気に入りに" +"加える最初になってください。" #: actions/favorited.php:156 #, php-format @@ -1234,6 +1244,8 @@ msgid "" "Why not [register an account](%%action.register%%) and be the first to add a " "notice to your favorites!" msgstr "" +"なぜ [アカウント登録](%%action.register%%) しないのですか、そして、あなたのお" +"気に入りにつぶやきを加える最初になりましょう!" #: actions/favoritesrss.php:111 actions/showfavorites.php:77 #: lib/personalgroupnav.php:115 @@ -1497,6 +1509,11 @@ msgid "" "for one](%%%%action.groupsearch%%%%) or [start your own!](%%%%action.newgroup" "%%%%)" msgstr "" +"%%%%site.name%%%% グループは、あなたと同様の関心事をもつ人々を見つけて話をす" +"ることができます。グループに入った後、あなたは他のメンバーに \"!groupname\" " +"文法を使ってメッセージを送ることができます。あなたが好きなグループがあるかど" +"うか[探してみる](%%%%action.groupsearch%%%%)か、あなた自身で[始めてください!]" +"(%%%%action.newgroup%%%%)" #: actions/groups.php:107 actions/usergroups.php:124 lib/groupeditform.php:122 msgid "Create a new group" @@ -1604,10 +1621,12 @@ msgstr "Jabber/GTalkのステータスが変更された時に通知を送る。 #: actions/imsettings.php:153 msgid "Send me replies through Jabber/GTalk from people I'm not subscribed to." msgstr "" +"Jabber/GTalkを通して回答を、私がフォローされていない人々から私に送ってくださ" +"い。" #: actions/imsettings.php:159 msgid "Publish a MicroID for my Jabber/GTalk address." -msgstr "" +msgstr "私のJabber/GTalkアドレスのためにMicroIDを発行してください。" #: actions/imsettings.php:285 msgid "No Jabber ID." @@ -2403,7 +2422,7 @@ msgstr "自分のいる場所。例:「都市, 都道府県 (または地域), #: actions/profilesettings.php:138 msgid "Share my current location when posting notices" -msgstr "" +msgstr "つぶやきを投稿するときには私の現在の場所を共有してください" #: actions/profilesettings.php:145 actions/tagother.php:149 #: actions/tagother.php:209 lib/subscriptionlist.php:106 @@ -2464,7 +2483,7 @@ msgstr "自動フォローのための利用者を更新できませんでした #: actions/profilesettings.php:354 #, fuzzy msgid "Couldn't save location prefs." -msgstr "タグを保存できません。" +msgstr "場所情報を保存できません。" #: actions/profilesettings.php:366 msgid "Couldn't save profile." @@ -2538,7 +2557,7 @@ msgid "" "friends, family, and colleagues! ([Read more](%%doc.help%%))" msgstr "" "これは %%site.name%% です。フリーソフトウェアツール[StatusNet](http://status." -"net/)を基にした[マイクロブロギング](http: //en.wikipedia.org/wiki/Micro-" +"net/)を基にした[マイクロブロギング](http://en.wikipedia.org/wiki/Micro-" "blogging) サービス。[今すぐ参加](%%action.register%%)してあなた自身や友達、家" "族そして同僚などについてのつぶやきを共有しましょう! ([もっと読む](%%doc.help%" "%))" @@ -2582,7 +2601,7 @@ msgstr "" "なぜ [アカウント登録](%%action.register%%) しないのですか。そして最初の投稿を" "してください!" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "タグクラウド" @@ -3058,7 +3077,7 @@ msgstr "グループプロファイル" #: actions/showgroup.php:263 actions/tagother.php:118 #: actions/userauthorization.php:167 lib/userprofile.php:177 msgid "URL" -msgstr "" +msgstr "URL" #: actions/showgroup.php:274 actions/tagother.php:128 #: actions/userauthorization.php:179 lib/userprofile.php:194 @@ -3125,7 +3144,7 @@ msgid "" "of this group and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" "**%s** は %%site.name%% 上のユーザグループです。フリーソフトウェアツール" -"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http: //en." +"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http://en." "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。[今すぐ参加](%%%%action.register%%%%) してこ" "のグループの一員になりましょう! ([もっと読む](%%%%doc.help%%%%))" @@ -3139,7 +3158,7 @@ msgid "" "their life and interests. " msgstr "" "**%s** は %%site.name%% 上のユーザグループです。フリーソフトウェアツール" -"[StatusNet](http://status.net/)を基にした[マイクロブロギング](http: //en." +"[StatusNet](http://status.net/)を基にした[マイクロブロギング](http://en." "wikipedia.org/wiki/Micro-blogging) サービス。メンバーは彼らの暮らしと興味に関" "する短いメッセージを共有します。" @@ -3235,7 +3254,7 @@ msgid "" "follow **%s**'s notices and many more! ([Read more](%%%%doc.help%%%%))" msgstr "" "**%s** は %%site.name%% 上のアカウントです。フリーソフトウェアツール" -"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http: //en." +"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http://en." "wikipedia.org/wiki/Micro-blogging) サービス。[今すぐ参加](%%%%action.register" "%%%%)して、**%s** のつぶやきなどをフォローしましょう! ([もっと読む](%%%%doc." "help%%%%))" @@ -3248,7 +3267,7 @@ msgid "" "[StatusNet](http://status.net/) tool. " msgstr "" "**%s** は %%site.name%% 上のアカウントです。フリーソフトウェアツール" -"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http: //en." +"[StatusNet](http://status.net/)を基にした[マイクロブロギング] (http://en." "wikipedia.org/wiki/Micro-blogging) サービス。" #: actions/showstream.php:313 @@ -3647,6 +3666,12 @@ msgid "" "featured%%). If you're a [Twitter user](%%action.twittersettings%%), you can " "automatically subscribe to people you already follow there." msgstr "" +"今、だれのつぶやきも聞いていないなら、あなたが知っている人々をフォローしてみ" +"てください。[ピープル検索](%%action.peoplesearch%%)を試してください。そして、" +"あなたが興味を持っているグループと私たちの[フィーチャーされた利用者](%%" +"action.featured%%)のメンバーを探してください。もし[Twitterユーザ](%%action." +"twittersettings%%)であれば、あなたは自動的に既にフォローしている人々をフォ" +"ローできます。" #: actions/subscriptions.php:123 actions/subscriptions.php:127 #, php-format @@ -3655,11 +3680,11 @@ msgstr "%s はだれも言うことを聞いていません。" #: actions/subscriptions.php:194 msgid "Jabber" -msgstr "" +msgstr "Jabber" #: actions/subscriptions.php:199 lib/connectsettingsaction.php:115 msgid "SMS" -msgstr "" +msgstr "SMS" #: actions/tag.php:68 #, php-format @@ -3741,9 +3766,8 @@ msgid "User is not sandboxed." msgstr "利用者はサンドボックスではありません。" #: actions/unsilence.php:72 -#, fuzzy msgid "User is not silenced." -msgstr "プロファイルがありません。" +msgstr "利用者はサイレンスではありません。" #: actions/unsubscribe.php:77 msgid "No profile id in request." @@ -3761,28 +3785,30 @@ msgstr "フォロー解除済み" #, php-format msgid "Listenee stream license ‘%s’ is not compatible with site license ‘%s’." msgstr "" +"リスニーストリームライセンス ‘%s’ は、サイトライセンス ‘%s’ と互換性がありま" +"せん。" #: actions/useradminpanel.php:58 lib/adminpanelaction.php:305 #: lib/personalgroupnav.php:115 msgid "User" -msgstr "" +msgstr "利用者" #: actions/useradminpanel.php:69 msgid "User settings for this StatusNet site." -msgstr "" +msgstr "この StatusNet サイトの利用者設定。" #: actions/useradminpanel.php:149 msgid "Invalid bio limit. Must be numeric." -msgstr "" +msgstr "不正な自己紹介制限。数字である必要があります。" #: actions/useradminpanel.php:155 msgid "Invalid welcome text. Max length is 255 characters." -msgstr "" +msgstr "不正なウェルカムテキスト。最大長は255字です。" #: actions/useradminpanel.php:165 #, php-format msgid "Invalid default subscripton: '%1$s' is not user." -msgstr "" +msgstr "不正なデフォルトフォローです: '%1$s' は利用者ではありません。" #: actions/useradminpanel.php:218 lib/accountsettingsaction.php:108 #: lib/personalgroupnav.php:109 @@ -3791,86 +3817,80 @@ msgstr "プロファイル" #: actions/useradminpanel.php:222 msgid "Bio Limit" -msgstr "" +msgstr "自己紹介制限" #: actions/useradminpanel.php:223 msgid "Maximum length of a profile bio in characters." -msgstr "" +msgstr "プロファイル自己紹介の最大文字長。" #: actions/useradminpanel.php:231 -#, fuzzy msgid "New users" -msgstr "削除" +msgstr "新しい利用者" #: actions/useradminpanel.php:235 msgid "New user welcome" -msgstr "" +msgstr "新しい利用者を歓迎" #: actions/useradminpanel.php:236 msgid "Welcome text for new users (Max 255 chars)." -msgstr "" +msgstr "新しい利用者へのウェルカムテキスト (最大255字)。" #: actions/useradminpanel.php:241 -#, fuzzy msgid "Default subscription" -msgstr "すべての購読" +msgstr "デフォルトフォロー" #: actions/useradminpanel.php:242 -#, fuzzy msgid "Automatically subscribe new users to this user." -msgstr "自分を購読している者を自動的に購読する (非人間に最適)" +msgstr "自動的にこの利用者に新しい利用者をフォローしてください。" #: actions/useradminpanel.php:251 -#, fuzzy msgid "Invitations" -msgstr "確認コード" +msgstr "招待" #: actions/useradminpanel.php:256 msgid "Invitations enabled" -msgstr "" +msgstr "招待が可能" #: actions/useradminpanel.php:258 msgid "Whether to allow users to invite new users." -msgstr "" +msgstr "利用者が新しい利用者を招待するのを許容するかどうか。" #: actions/useradminpanel.php:265 msgid "Sessions" -msgstr "" +msgstr "セッション" #: actions/useradminpanel.php:270 msgid "Handle sessions" -msgstr "" +msgstr "セッションの扱い" #: actions/useradminpanel.php:272 msgid "Whether to handle sessions ourselves." -msgstr "" +msgstr "自分達でセッションを扱うのであるかどうか。" #: actions/useradminpanel.php:276 msgid "Session debugging" -msgstr "" +msgstr "セッションデバッグ" #: actions/useradminpanel.php:278 msgid "Turn on debugging output for sessions." -msgstr "" +msgstr "セッションのためのデバッグ出力をオン。" #: actions/userauthorization.php:105 msgid "Authorize subscription" msgstr "フォローを承認" #: actions/userauthorization.php:110 -#, fuzzy msgid "" "Please check these details to make sure that you want to subscribe to this " "user’s notices. If you didn’t just ask to subscribe to someone’s notices, " "click “Reject”." msgstr "" -"ユーザの通知を購読するには詳細を確認して下さい。購読しない場合は、\"Cancel\" " -"キャンセルをクリックして下さい。" +"ユーザのつぶやきをフォローするには詳細を確認して下さい。だれかのつぶやきを" +"フォローするために尋ねない場合は、\"Reject\" をクリックして下さい。" #: actions/userauthorization.php:188 -#, fuzzy msgid "License" -msgstr "ライセンス。" +msgstr "ライセンス" #: actions/userauthorization.php:209 msgid "Accept" @@ -3886,9 +3906,8 @@ msgid "Reject" msgstr "拒否" #: actions/userauthorization.php:212 -#, fuzzy msgid "Reject this subscription" -msgstr "全てのサブスクリプション" +msgstr "このフォローを拒否" #: actions/userauthorization.php:225 msgid "No authorization request!" @@ -3904,6 +3923,9 @@ msgid "" "with the site’s instructions for details on how to authorize the " "subscription. Your subscription token is:" msgstr "" +"フォローは承認されましたが、コールバックURLが通過できませんでした。どう" +"フォローを承認するかに関する詳細のためのサイトの指示をチェックしてください。" +"あなたのフォロートークンは:" #: actions/userauthorization.php:259 msgid "Subscription rejected" @@ -3915,61 +3937,65 @@ msgid "" "with the site’s instructions for details on how to fully reject the " "subscription." msgstr "" +"フォローは拒絶されましたが、コールバックURLは全く通過されませんでした。 どう" +"フォローを完全に拒絶するかに関する詳細のためのサイトの指示をチェックしてくだ" +"さい。" #: actions/userauthorization.php:296 #, php-format msgid "Listener URI ‘%s’ not found here" -msgstr "" +msgstr "リスナー URI ‘%s’ はここでは見つかりません" #: actions/userauthorization.php:301 #, php-format msgid "Listenee URI ‘%s’ is too long." -msgstr "" +msgstr "リスニー URI ‘%s’ が長すぎます。" #: actions/userauthorization.php:307 #, php-format msgid "Listenee URI ‘%s’ is a local user." -msgstr "" +msgstr "リスニー URI ‘%s’ はローカルユーザーではありません。" #: actions/userauthorization.php:322 #, php-format msgid "Profile URL ‘%s’ is for a local user." -msgstr "" +msgstr "プロファイル URL ‘%s’ はローカルユーザーではありません。" #: actions/userauthorization.php:338 #, php-format msgid "Avatar URL ‘%s’ is not valid." -msgstr "" +msgstr "アバター URL ‘%s’ が正しくありません。" #: actions/userauthorization.php:343 -#, fuzzy, php-format +#, php-format msgid "Can’t read avatar URL ‘%s’." msgstr "アバターURL を読み取れません '%s'" #: actions/userauthorization.php:348 -#, fuzzy, php-format +#, php-format msgid "Wrong image type for avatar URL ‘%s’." -msgstr "不正な画像形式。'%s'" +msgstr "アバター URL '%s' は不正な画像形式。" #: actions/userbyid.php:70 -#, fuzzy msgid "No ID." -msgstr "id がありません。" +msgstr "ID がありません。" #: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy msgid "Profile design" -msgstr "プロファイル設定" +msgstr "プロファイルデザイン" #: actions/userdesignsettings.php:87 lib/designsettings.php:76 msgid "" "Customize the way your profile looks with a background image and a colour " "palette of your choice." msgstr "" +"あなたのプロフィールがバックグラウンド画像とあなたの選択の色のパレットで見る" +"方法をカスタマイズしてください。" #: actions/userdesignsettings.php:282 +#, fuzzy msgid "Enjoy your hotdog!" -msgstr "" +msgstr "あなたのhotdogを楽しんでください!" #: actions/usergroups.php:64 #, php-format @@ -3977,19 +4003,18 @@ msgid "%s groups, page %d" msgstr "%s グループ, %d ページ" #: actions/usergroups.php:130 -#, fuzzy msgid "Search for more groups" -msgstr "人々かテキストを検索" +msgstr "もっとグループを検索" #: actions/usergroups.php:153 -#, fuzzy, php-format +#, php-format msgid "%s is not a member of any group." -msgstr "そのプロファイルは送信されていません。" +msgstr "%s はどのグループのメンバーでもありません。" #: actions/usergroups.php:158 #, php-format msgid "Try [searching for groups](%%action.groupsearch%%) and joining them." -msgstr "" +msgstr "[グループを探して](%%action.groupsearch%%)それに加入してください。" #: classes/File.php:137 #, php-format @@ -3997,33 +4022,38 @@ msgid "" "No file may be larger than %d bytes and the file you sent was %d bytes. Try " "to upload a smaller version." msgstr "" +"どんなファイルも %d バイトより大きくてはいけません、そして、あなたが送った" +"ファイルは %d バイトでした。より小さいバージョンをアップロードするようにして" +"ください。" #: classes/File.php:147 #, php-format msgid "A file this large would exceed your user quota of %d bytes." msgstr "" +"これほど大きいファイルはあなたの%dバイトのユーザ割当てを超えているでしょう。" #: classes/File.php:154 #, php-format msgid "A file this large would exceed your monthly quota of %d bytes." msgstr "" +"これほど大きいファイルはあなたの%dバイトの毎月の割当てを超えているでしょう。" #: classes/Message.php:45 msgid "You are banned from sending direct messages." -msgstr "" +msgstr "あなたはダイレクトメッセージを送るのが禁止されています。" #: classes/Message.php:61 msgid "Could not insert message." -msgstr "" +msgstr "メッセージを追加できません。" #: classes/Message.php:71 msgid "Could not update message with new URI." -msgstr "" +msgstr "新しいURIでメッセージをアップデートできませんでした。" #: classes/Notice.php:172 #, php-format msgid "DB error inserting hashtag: %s" -msgstr "" +msgstr "ハッシュタグ追加 DB エラー: %s" #: classes/Notice.php:226 msgid "Problem saving notice. Too long." @@ -4037,16 +4067,19 @@ msgstr "つぶやきを保存する際に問題が発生しました。不明な msgid "" "Too many notices too fast; take a breather and post again in a few minutes." msgstr "" +"多すぎるつぶやきが速すぎます; 数分間の休みを取ってから再投稿してください。" #: classes/Notice.php:241 msgid "" "Too many duplicate messages too quickly; take a breather and post again in a " "few minutes." msgstr "" +"多すぎる重複メッセージが速すぎます; 数分間休みを取ってから再度投稿してくださ" +"い。" #: classes/Notice.php:247 msgid "You are banned from posting notices on this site." -msgstr "" +msgstr "あなたはこのサイトでつぶやきを投稿するのが禁止されています。" #: classes/Notice.php:309 classes/Notice.php:334 msgid "Problem saving notice." @@ -4065,17 +4098,15 @@ msgstr "" #: classes/User.php:368 #, php-format msgid "Welcome to %1$s, @%2$s!" -msgstr "" +msgstr "ようこそ %1$s、@%2$s!" #: classes/User_group.php:380 -#, fuzzy msgid "Could not create group." -msgstr "アバターを保存できません" +msgstr "グループを作成できません。" #: classes/User_group.php:409 -#, fuzzy msgid "Could not set group membership." -msgstr "サブスクリプションを作成できません" +msgstr "グループメンバーシップをセットできません。" #: lib/accountsettingsaction.php:108 msgid "Change your profile settings" @@ -4094,9 +4125,8 @@ msgid "Change email handling" msgstr "メールの扱いを変更" #: lib/accountsettingsaction.php:124 -#, fuzzy msgid "Design your profile" -msgstr "プロファイルがありません。" +msgstr "あなたのプロファイルをデザイン" #: lib/accountsettingsaction.php:128 msgid "Other" @@ -4117,7 +4147,7 @@ msgstr "名称未設定ページ" #: lib/action.php:426 msgid "Primary site navigation" -msgstr "" +msgstr "プライマリサイトナビゲーション" #: lib/action.php:432 msgid "Home" @@ -4125,7 +4155,7 @@ msgstr "ホーム" #: lib/action.php:432 msgid "Personal profile and friends timeline" -msgstr "" +msgstr "パーソナルプロファイルと友人のタイムライン" #: lib/action.php:434 msgid "Account" @@ -4140,14 +4170,12 @@ msgid "Connect" msgstr "接続" #: lib/action.php:437 -#, fuzzy msgid "Connect to services" -msgstr "サーバへリダイレクトできません : %s" +msgstr "サービスへ接続" #: lib/action.php:441 -#, fuzzy msgid "Change site configuration" -msgstr "サブスクリプション" +msgstr "サイト設定の変更" #: lib/action.php:445 lib/subgroupnav.php:105 msgid "Invite" @@ -4203,13 +4231,12 @@ msgid "Page notice" msgstr "ページつぶやき" #: lib/action.php:720 -#, fuzzy msgid "Secondary site navigation" -msgstr "サブスクリプション" +msgstr "セカンダリサイトナビゲーション" #: lib/action.php:727 msgid "About" -msgstr "解説" +msgstr "About" #: lib/action.php:729 msgid "FAQ" @@ -4237,7 +4264,7 @@ msgstr "バッジ" #: lib/action.php:770 msgid "StatusNet software license" -msgstr "" +msgstr "StatusNet ソフトウェアライセンス" #: lib/action.php:773 #, php-format @@ -4265,9 +4292,8 @@ msgstr "" "org/licensing/licenses/agpl-3.0.html)。" #: lib/action.php:791 -#, fuzzy msgid "Site content license" -msgstr "新しい通知" +msgstr "サイト内容ライセンス" #: lib/action.php:800 msgid "All " @@ -4282,49 +4308,44 @@ msgid "Pagination" msgstr "ページ化" #: lib/action.php:1108 -#, fuzzy msgid "After" -msgstr "<< 前" +msgstr "<<後" #: lib/action.php:1116 -#, fuzzy msgid "Before" -msgstr "前 >>" +msgstr "前>>" #: lib/action.php:1164 msgid "There was a problem with your session token." -msgstr "" +msgstr "あなたのセッショントークンに関する問題がありました。" #: lib/adminpanelaction.php:96 msgid "You cannot make changes to this site." -msgstr "" +msgstr "あなたはこのサイトへの変更を行うことができません。" #: lib/adminpanelaction.php:195 msgid "showForm() not implemented." -msgstr "" +msgstr "showForm() は実装されていません。" #: lib/adminpanelaction.php:224 msgid "saveSettings() not implemented." -msgstr "" +msgstr "saveSettings() は実装されていません。" #: lib/adminpanelaction.php:247 msgid "Unable to delete design setting." -msgstr "" +msgstr "デザイン設定を削除できません。" #: lib/adminpanelaction.php:300 -#, fuzzy msgid "Basic site configuration" -msgstr "メールアドレス確認" +msgstr "基本サイト設定" #: lib/adminpanelaction.php:303 -#, fuzzy msgid "Design configuration" -msgstr "メールアドレス確認" +msgstr "デザイン設定" #: lib/adminpanelaction.php:306 lib/adminpanelaction.php:309 -#, fuzzy msgid "Paths configuration" -msgstr "メールアドレス確認" +msgstr "パス設定" #: lib/attachmentlist.php:87 msgid "Attachments" @@ -4335,17 +4356,26 @@ msgid "Author" msgstr "作者" #: lib/attachmentlist.php:278 -#, fuzzy msgid "Provider" -msgstr "プロファイル" +msgstr "プロバイダ" #: lib/attachmentnoticesection.php:67 msgid "Notices where this attachment appears" -msgstr "" +msgstr "この添付が現れるつぶやき" #: lib/attachmenttagcloudsection.php:48 msgid "Tags for this attachment" -msgstr "" +msgstr "この添付のタグ" + +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "パスワード変更" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "パスワード変更" #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" @@ -4361,7 +4391,7 @@ msgstr "コマンド失敗" #: lib/command.php:44 msgid "Sorry, this command is not yet implemented." -msgstr "" +msgstr "すみません、このコマンドはまだ実装されていません。" #: lib/command.php:88 #, php-format @@ -4370,7 +4400,7 @@ msgstr "ユーザを更新できません" #: lib/command.php:92 msgid "It does not make a lot of sense to nudge yourself!" -msgstr "" +msgstr "それは自分自身への合図で多くは意味がありません!" #: lib/command.php:99 #, php-format @@ -4390,16 +4420,16 @@ msgstr "" #: lib/command.php:152 lib/command.php:399 lib/command.php:460 msgid "Notice with that id does not exist" -msgstr "" +msgstr "その ID によるつぶやきは存在していません" #: lib/command.php:168 lib/command.php:415 lib/command.php:476 #: lib/command.php:532 msgid "User has no last notice" -msgstr "" +msgstr "利用者はまだつぶやいていません" #: lib/command.php:190 msgid "Notice marked as fave." -msgstr "" +msgstr "お気に入りにされているつぶやき。" #: lib/command.php:315 #, php-format @@ -4424,92 +4454,89 @@ msgstr "ホームページ: %s" #: lib/command.php:327 #, php-format msgid "About: %s" -msgstr "" +msgstr "About: %s" #: lib/command.php:358 scripts/xmppdaemon.php:301 #, php-format msgid "Message too long - maximum is %d characters, you sent %d" -msgstr "" +msgstr "メッセージが長すぎます - 最大 %d 字、あなたが送ったのは %d" #: lib/command.php:378 msgid "Error sending direct message." -msgstr "" +msgstr "ダイレクトメッセージ送信エラー。" #: lib/command.php:422 msgid "Cannot repeat your own notice" -msgstr "" +msgstr "自分のつぶやきを繰り返すことはできません" #: lib/command.php:427 -#, fuzzy msgid "Already repeated that notice" -msgstr "この通知を削除" +msgstr "すでにこのつぶやきは繰り返されています" #: lib/command.php:435 -#, fuzzy, php-format +#, php-format msgid "Notice from %s repeated" -msgstr "通知" +msgstr "%s からつぶやきが繰り返されています" #: lib/command.php:437 -#, fuzzy msgid "Error repeating notice." -msgstr "通知を保存する際に問題が発生しました。" +msgstr "つぶやき繰り返しエラー" #: lib/command.php:491 #, php-format msgid "Notice too long - maximum is %d characters, you sent %d" -msgstr "" +msgstr "つぶやきが長すぎます - 最大 %d 字、あなたが送ったのは %d" #: lib/command.php:500 -#, fuzzy, php-format +#, php-format msgid "Reply to %s sent" -msgstr "この通知へ返信" +msgstr "%s へ返信を送りました" #: lib/command.php:502 -#, fuzzy msgid "Error saving notice." -msgstr "通知を保存する際に問題が発生しました。" +msgstr "つぶやき保存エラー。" #: lib/command.php:556 msgid "Specify the name of the user to subscribe to" -msgstr "" +msgstr "フォローする利用者の名前を指定してください" #: lib/command.php:563 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "%s をフォローしました" #: lib/command.php:584 msgid "Specify the name of the user to unsubscribe from" -msgstr "" +msgstr "フォローをやめるユーザの名前を指定してください" #: lib/command.php:591 #, php-format msgid "Unsubscribed from %s" -msgstr "" +msgstr "%s のフォローをやめる" #: lib/command.php:609 lib/command.php:632 msgid "Command not yet implemented." -msgstr "" +msgstr "コマンドはまだ実装されていません。" #: lib/command.php:612 msgid "Notification off." -msgstr "" +msgstr "通知オフ。" #: lib/command.php:614 msgid "Can't turn off notification." -msgstr "" +msgstr "通知をオフできません。" #: lib/command.php:635 msgid "Notification on." -msgstr "" +msgstr "通知オン。" #: lib/command.php:637 msgid "Can't turn on notification." -msgstr "" +msgstr "通知をオンできません。" #: lib/command.php:650 msgid "Login command is disabled" -msgstr "" +msgstr "ログインコマンドが無効になっています。" #: lib/command.php:664 #, php-format @@ -4519,37 +4546,34 @@ msgstr "%s 用のログイン・トークンを作成できませんでした" #: lib/command.php:669 #, php-format msgid "This link is useable only once, and is good for only 2 minutes: %s" -msgstr "" +msgstr "このリンクは、かつてだけ使用可能であり、2分間だけ良いです: %s" #: lib/command.php:685 -#, fuzzy msgid "You are not subscribed to anyone." -msgstr "そのプロファイルは送信されていません。" +msgstr "あなたはだれにもフォローされていません。" #: lib/command.php:687 msgid "You are subscribed to this person:" msgid_plural "You are subscribed to these people:" -msgstr[0] "そのプロファイルは送信されていません。" +msgstr[0] "あなたはこの人にフォローされています:" #: lib/command.php:707 -#, fuzzy msgid "No one is subscribed to you." -msgstr "リモートサブスクライブ" +msgstr "誰もフォローしていません。" #: lib/command.php:709 msgid "This person is subscribed to you:" msgid_plural "These people are subscribed to you:" -msgstr[0] "リモートサブスクライブ" +msgstr[0] "この人はあなたにフォローされている:" #: lib/command.php:729 -#, fuzzy msgid "You are not a member of any groups." -msgstr "そのプロファイルは送信されていません。" +msgstr "あなたはどのグループのメンバーでもありません。" #: lib/command.php:731 msgid "You are a member of this group:" msgid_plural "You are a member of these groups:" -msgstr[0] "そのプロファイルは送信されていません。" +msgstr[0] "あなたはこのグループのメンバーではありません:" #: lib/command.php:745 msgid "" @@ -4593,57 +4617,57 @@ msgid "" msgstr "" #: lib/common.php:199 -#, fuzzy msgid "No configuration file found. " -msgstr "確認コードがありません。" +msgstr "コンフィギュレーションファイルがありません。 " #: lib/common.php:200 msgid "I looked for configuration files in the following places: " -msgstr "" +msgstr "私は以下の場所でコンフィギュレーションファイルを探しました: " #: lib/common.php:201 msgid "You may wish to run the installer to fix this." msgstr "" +"あなたは、これを修理するためにインストーラを動かしたがっているかもしれませ" +"ん。" #: lib/common.php:202 -#, fuzzy msgid "Go to the installer." -msgstr "サイトへログイン" +msgstr "インストーラへ。" #: lib/connectsettingsaction.php:110 msgid "IM" -msgstr "" +msgstr "IM" #: lib/connectsettingsaction.php:111 msgid "Updates by instant messenger (IM)" -msgstr "" +msgstr "インスタントメッセンジャー(IM)での更新" #: lib/connectsettingsaction.php:116 msgid "Updates by SMS" -msgstr "" +msgstr "SMSでの更新" #: lib/dberroraction.php:60 msgid "Database error" -msgstr "" +msgstr "データベースエラー" #: lib/designsettings.php:105 -#, fuzzy msgid "Upload file" -msgstr "アップロード" +msgstr "ファイルアップロード" #: lib/designsettings.php:109 -#, fuzzy msgid "" "You can upload your personal background image. The maximum file size is 2MB." -msgstr "長すぎます。通知は最大 140 字までです。" +msgstr "" +"自分のバックグラウンド画像をアップロードできます。最大ファイルサイズは 2MB で" +"す。" #: lib/designsettings.php:418 msgid "Design defaults restored." -msgstr "" +msgstr "デフォルトのデザインを回復。" #: lib/disfavorform.php:114 lib/disfavorform.php:140 msgid "Disfavor this notice" -msgstr "" +msgstr "このつぶやきのお気に入りをやめる" #: lib/favorform.php:114 lib/favorform.php:140 msgid "Favor this notice" @@ -4651,23 +4675,23 @@ msgstr "このつぶやきをお気に入りにする" #: lib/favorform.php:140 msgid "Favor" -msgstr "" +msgstr "お気に入り" #: lib/feed.php:85 msgid "RSS 1.0" -msgstr "" +msgstr "RSS 1.0" #: lib/feed.php:87 msgid "RSS 2.0" -msgstr "" +msgstr "RSS 2.0" #: lib/feed.php:89 msgid "Atom" -msgstr "" +msgstr "Atom" #: lib/feed.php:91 msgid "FOAF" -msgstr "" +msgstr "FOAF" #: lib/feedlist.php:64 msgid "Export data" @@ -4679,11 +4703,11 @@ msgstr "タグのフィルター" #: lib/galleryaction.php:131 msgid "All" -msgstr "" +msgstr "全て" #: lib/galleryaction.php:139 msgid "Select tag to filter" -msgstr "" +msgstr "フィルターにかけるタグを選択" #: lib/galleryaction.php:140 msgid "Tag" @@ -4691,7 +4715,7 @@ msgstr "タグ" #: lib/galleryaction.php:141 msgid "Choose a tag to narrow list" -msgstr "" +msgstr "タグを選んで、リストを狭くしてください" #: lib/galleryaction.php:143 msgid "Go" @@ -4702,43 +4726,40 @@ msgid "URL of the homepage or blog of the group or topic" msgstr "グループやトピックのホームページやブログの URL" #: lib/groupeditform.php:168 -#, fuzzy msgid "Describe the group or topic" -msgstr "グループやトピックを140字以内記述" +msgstr "グループやトピックを記述" #: lib/groupeditform.php:170 -#, fuzzy, php-format +#, php-format msgid "Describe the group or topic in %d characters" -msgstr "グループやトピックを140字以内記述" +msgstr "グループやトピックを %d 字以内記述" #: lib/groupeditform.php:172 msgid "Description" msgstr "概要" #: lib/groupeditform.php:179 -#, fuzzy msgid "" "Location for the group, if any, like \"City, State (or Region), Country\"" -msgstr "いる場所, 例えば \"City, State (or Region), Country\"" +msgstr "グループの場所, 例えば \"都市, 都道府県 (または 地域), 国\"" #: lib/groupeditform.php:187 #, php-format msgid "Extra nicknames for the group, comma- or space- separated, max %d" -msgstr "" +msgstr "グループのエクストラニックネーム、カンマまたはスペース区切り、最大 %d" #: lib/groupnav.php:85 msgid "Group" msgstr "グループ" #: lib/groupnav.php:101 -#, fuzzy msgid "Blocked" msgstr "ブロック" #: lib/groupnav.php:102 -#, fuzzy, php-format +#, php-format msgid "%s blocked users" -msgstr "そのようなユーザはいません。" +msgstr "%s ブロック利用者" #: lib/groupnav.php:108 #, php-format @@ -4755,9 +4776,9 @@ msgid "Add or edit %s logo" msgstr "%s ロゴの追加や編集" #: lib/groupnav.php:120 -#, fuzzy, php-format +#, php-format msgid "Add or edit %s design" -msgstr "%s ロゴの追加や編集" +msgstr "%s デザインの追加や編集" #: lib/groupsbymemberssection.php:71 msgid "Groups with most members" @@ -4777,9 +4798,9 @@ msgid "This page is not available in a media type you accept" msgstr "このページはあなたが承認したメディアタイプでは利用できません。" #: lib/imagefile.php:75 -#, fuzzy, php-format +#, php-format msgid "That file is too big. The maximum file size is %s." -msgstr "長すぎます。通知は最大 140 字までです。" +msgstr "ファイルが大きすぎます。最大ファイルサイズは %s 。" #: lib/imagefile.php:80 msgid "Partial upload." @@ -4798,21 +4819,20 @@ msgid "Unsupported image file format." msgstr "サポート外の画像形式です。" #: lib/imagefile.php:118 -#, fuzzy msgid "Lost our file." -msgstr "そのような通知はありません。" +msgstr "ファイルを紛失。" #: lib/imagefile.php:150 lib/imagefile.php:197 msgid "Unknown file type" -msgstr "" +msgstr "不明なファイルタイプ" #: lib/imagefile.php:217 msgid "MB" -msgstr "" +msgstr "MB" #: lib/imagefile.php:219 msgid "kB" -msgstr "" +msgstr "kB" #: lib/jabber.php:191 #, php-format @@ -4855,11 +4875,23 @@ msgid "" "Thanks for your time, \n" "%s\n" msgstr "" +"こんにちは、%s\n" +"\n" +"だれかがこのメールアドレスを %s に入力しました。\n" +"\n" +"もしエントリーを確認したいなら、以下のURLを使用してください:\n" +"\n" +"%s\n" +"\n" +"もしそうでなければ、このメッセージを無視してください。\n" +"\n" +"ありがとうございます。\n" +"%s\n" #: lib/mail.php:236 #, php-format msgid "%1$s is now listening to your notices on %2$s." -msgstr "%1$s は %2$s であなたの通知を購読しています。" +msgstr "%1$s は %2$s であなたのつぶやきを聞いています。" #: lib/mail.php:241 #, fuzzy, php-format @@ -4875,12 +4907,16 @@ msgid "" "----\n" "Change your email address or notification options at %8$s\n" msgstr "" -"%1$s は %2$s であなたの通知を聞いています。\n" +"%1$s は %2$s であなたのつぶやきを聞いています。\n" "\n" -"\t%3$s\n" +"%3$s\n" "\n" -"確かにあなたの,\n" -"%4$s.\n" +"%4$s%5$s%6$s\n" +"忠実である、あなたのもの、\n" +"%7$s.\n" +"\n" +"----\n" +"%8$s でメールアドレスか通知オプションを変えてください。\n" #: lib/mail.php:254 #, php-format @@ -4898,14 +4934,16 @@ msgid "" "Bio: %s\n" "\n" msgstr "" +"自己紹介: %s\n" +"\n" #: lib/mail.php:286 #, php-format msgid "New email address for posting to %s" -msgstr "" +msgstr "%s へ投稿のための新しいメールアドレス" #: lib/mail.php:289 -#, php-format +#, fuzzy, php-format msgid "" "You have a new posting address on %1$s.\n" "\n" @@ -4916,6 +4954,14 @@ msgid "" "Faithfully yours,\n" "%4$s" msgstr "" +"あなたは %1$s に関する新しい投稿アドレスを持っています。\n" +"\n" +"%2$s にメールを送って、新しいメッセージを投稿してください。\n" +"\n" +"%3$s でより多くのメール指示。\n" +"\n" +"忠実である、あなたのもの、\n" +"%4$s" #: lib/mail.php:413 #, php-format @@ -4924,15 +4970,15 @@ msgstr "%s の状態" #: lib/mail.php:439 msgid "SMS confirmation" -msgstr "" +msgstr "SMS確認" #: lib/mail.php:463 #, php-format msgid "You've been nudged by %s" -msgstr "あなたは %s に突かれています" +msgstr "あなたは %s に合図されています" #: lib/mail.php:467 -#, php-format +#, fuzzy, php-format msgid "" "%1$s (%2$s) is wondering what you are up to these days and is inviting you " "to post some news.\n" @@ -4946,14 +4992,25 @@ msgid "" "With kind regards,\n" "%4$s\n" msgstr "" +"%1$s ($2$s) は、最近まであなたが何であるかと思っていて、あなたが何らかの" +"ニュースを投稿するよう誘っています。\n" +"\n" +"それで、あなたから、連絡をいただきましょう :)\n" +"\n" +"%3$s\n" +"\n" +"このメールに答えないでください。 それはそれらを始めないでしょう。\n" +"\n" +"敬具\n" +"%4$s\n" #: lib/mail.php:510 #, php-format msgid "New private message from %s" -msgstr "" +msgstr "%s からの新しいプライベートメッセージ" #: lib/mail.php:514 -#, php-format +#, fuzzy, php-format msgid "" "%1$s (%2$s) sent you a private message:\n" "\n" @@ -4970,14 +5027,28 @@ msgid "" "With kind regards,\n" "%5$s\n" msgstr "" +"%1$s (%2$s) はあなたにプライベートメッセージを送りました:\n" +"\n" +"------------------------------------------------------\n" +"%3$s\n" +"------------------------------------------------------\n" +"\n" +"あなたはここでそれらのメッセージに答えることができます:\n" +"\n" +"%4$s\n" +"\n" +"このメールに答えないでください。 それはそれらを始めないでしょう。\n" +"\n" +"敬具\n" +"%5$s\n" #: lib/mail.php:559 -#, fuzzy, php-format +#, php-format msgid "%s (@%s) added your notice as a favorite" -msgstr "%1$s は %2$s であなたの通知を聞いています。" +msgstr "%s (@%s) はお気に入りとしてあなたのつぶやきを加えました" #: lib/mail.php:561 -#, php-format +#, fuzzy, php-format msgid "" "%1$s (@%7$s) just added your notice from %2$s as one of their favorites.\n" "\n" @@ -4996,11 +5067,28 @@ msgid "" "Faithfully yours,\n" "%6$s\n" msgstr "" +"%1$s (@%7$s) は彼らのお気に入りのひとりとして %2$s からあなたのつぶやきを加え" +"ました。\n" +"\n" +"あなたのつぶやきのURL:\n" +"\n" +"%3$s\n" +"\n" +"あなたのつぶやきのテキスト:\n" +"\n" +"%4$s\n" +"\n" +"あなたはここで %1$s のお気に入りのリストを見ることができます:\n" +"\n" +"%5$s\n" +"\n" +"忠実である、あなたのもの、\n" +"%6%s\n" #: lib/mail.php:624 #, php-format msgid "%s (@%s) sent a notice to your attention" -msgstr "" +msgstr "%s (@%s) はあなた宛てにつぶやきを送りました" #: lib/mail.php:626 #, php-format @@ -5016,58 +5104,77 @@ msgid "" "\t%4$s\n" "\n" msgstr "" +"%1$s (@%9$s) はあなた宛てに(@-返信) %2$s でつぶやきを送りました。\n" +"\n" +"つぶやきはここ:\n" +"\n" +"%3$s\n" +"\n" +"これを読む:\n" +"\n" +"%4$s\n" +"\n" #: lib/mailbox.php:89 msgid "Only the user can read their own mailboxes." -msgstr "" +msgstr "利用者だけがそれら自身のメールボックスを読むことができます。" #: lib/mailbox.php:139 msgid "" "You have no private messages. You can send private message to engage other " "users in conversation. People can send you messages for your eyes only." msgstr "" +"あなたには、プライベートメッセージが全くありません。あなたは他の利用者を会話" +"に引き込むプライベートメッセージを送ることができます。人々はあなただけへの" +"メッセージを送ることができます。" #: lib/mailbox.php:227 lib/noticelist.php:477 msgid "from" -msgstr "から " +msgstr "from" #: lib/mediafile.php:98 lib/mediafile.php:123 msgid "There was a database error while saving your file. Please try again." msgstr "" +"データベースエラーがあなたのファイルを保存しているときにありました。 再試行し" +"てください。" #: lib/mediafile.php:142 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini." msgstr "" +"アップロードされたファイルは php.ini の upload_max_filesize ディレクティブを" +"超えています。" #: lib/mediafile.php:147 msgid "" "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " "the HTML form." msgstr "" +"アップロードされたファイルはHTMLフォームで指定された MAX_FILE_SIZE ディレク" +"ティブを超えています。" #: lib/mediafile.php:152 msgid "The uploaded file was only partially uploaded." -msgstr "" +msgstr "アップロードされたファイルは部分的にアップロードされていただけです。" #: lib/mediafile.php:159 msgid "Missing a temporary folder." -msgstr "" +msgstr "一時フォルダを失いました。" #: lib/mediafile.php:162 msgid "Failed to write file to disk." -msgstr "" +msgstr "ディスクへのファイル書き込みに失敗しました。" #: lib/mediafile.php:165 msgid "File upload stopped by extension." -msgstr "" +msgstr "エクステンションによってファイルアップロードを中止しました。" #: lib/mediafile.php:179 lib/mediafile.php:216 msgid "File exceeds user's quota!" -msgstr "" +msgstr "ファイルはユーザの割当てを超えています!" #: lib/mediafile.php:196 lib/mediafile.php:233 msgid "File could not be moved to destination directory." -msgstr "" +msgstr "ファイルを目的ディレクトリに動かすことができませんでした。" #: lib/mediafile.php:201 lib/mediafile.php:237 msgid "Could not determine file's mime-type!" @@ -5076,12 +5183,12 @@ msgstr "ファイルのMIMEタイプを決定できません" #: lib/mediafile.php:270 #, php-format msgid " Try using another %s format." -msgstr "" +msgstr "別の %s フォーマットを試してください。" #: lib/mediafile.php:275 #, php-format msgid "%s is not a supported filetype on this server." -msgstr "" +msgstr "%s はこのサーバのサポートしているファイルタイプではありません。" #: lib/messageform.php:120 msgid "Send a direct notice" @@ -5089,7 +5196,7 @@ msgstr "直接つぶやきを送る" #: lib/messageform.php:146 msgid "To" -msgstr "" +msgstr "To" #: lib/messageform.php:159 lib/noticeform.php:185 msgid "Available characters" @@ -5106,15 +5213,15 @@ msgstr "最近どう %s?" #: lib/noticeform.php:192 msgid "Attach" -msgstr "" +msgstr "添付" #: lib/noticeform.php:196 msgid "Attach a file" -msgstr "" +msgstr "ファイル添付" #: lib/noticeform.php:212 msgid "Share your location" -msgstr "" +msgstr "あなたの場所を共有" #: lib/noticelist.php:428 #, php-format @@ -5122,34 +5229,36 @@ msgid "%1$u°%2$u'%3$u\"%4$s %5$u°%6$u'%7$u\"%8$s" msgstr "" #: lib/noticelist.php:429 +#, fuzzy msgid "N" -msgstr "" +msgstr "北" #: lib/noticelist.php:429 +#, fuzzy msgid "S" -msgstr "" +msgstr "南" #: lib/noticelist.php:430 +#, fuzzy msgid "E" -msgstr "" +msgstr "東" #: lib/noticelist.php:430 +#, fuzzy msgid "W" -msgstr "" +msgstr "西" #: lib/noticelist.php:436 msgid "at" -msgstr "" +msgstr "at" #: lib/noticelist.php:531 -#, fuzzy msgid "in context" -msgstr "コンテンツがありません!" +msgstr "" #: lib/noticelist.php:556 -#, fuzzy msgid "Repeated by" -msgstr "作成" +msgstr "" #: lib/noticelist.php:585 msgid "Reply to this notice" @@ -5160,21 +5269,20 @@ msgid "Reply" msgstr "返信" #: lib/noticelist.php:628 -#, fuzzy msgid "Notice repeated" -msgstr "通知" +msgstr "つぶやきを繰り返しました" #: lib/nudgeform.php:116 msgid "Nudge this user" -msgstr "このユーザを突く" +msgstr "このユーザへ合図" #: lib/nudgeform.php:128 msgid "Nudge" -msgstr "突く" +msgstr "合図" #: lib/nudgeform.php:128 msgid "Send a nudge to this user" -msgstr "このユーザへ突きを送る" +msgstr "このユーザへ合図を送る" #: lib/oauthstore.php:283 msgid "Error inserting new profile" @@ -5190,11 +5298,11 @@ msgstr "リモートプロファイル追加エラー" #: lib/oauthstore.php:345 msgid "Duplicate notice" -msgstr "重なったつぶやき" +msgstr "重複したつぶやき" #: lib/oauthstore.php:466 lib/subs.php:48 msgid "You have been banned from subscribing." -msgstr "" +msgstr "あなたはフォローが禁止されました。" #: lib/oauthstore.php:491 msgid "Couldn't insert new subscription." @@ -5210,28 +5318,28 @@ msgstr "返信" #: lib/personalgroupnav.php:114 msgid "Favorites" -msgstr "" +msgstr "お気に入り" #: lib/personalgroupnav.php:124 msgid "Inbox" -msgstr "" +msgstr "受信箱" #: lib/personalgroupnav.php:125 msgid "Your incoming messages" -msgstr "" +msgstr "あなたの入ってくるメッセージ" #: lib/personalgroupnav.php:129 msgid "Outbox" -msgstr "" +msgstr "送信箱" #: lib/personalgroupnav.php:130 msgid "Your sent messages" -msgstr "" +msgstr "あなたが送ったメッセージ" #: lib/personaltagcloudsection.php:56 #, php-format msgid "Tags in %s's notices" -msgstr "" +msgstr "%s のつぶやきのタグ" #: lib/profileaction.php:109 lib/profileaction.php:192 lib/subgroupnav.php:82 msgid "Subscriptions" @@ -5251,7 +5359,7 @@ msgstr "すべてのフォローされている" #: lib/profileaction.php:178 msgid "User ID" -msgstr "" +msgstr "利用者ID" #: lib/profileaction.php:183 msgid "Member since" @@ -5259,16 +5367,15 @@ msgstr "からのメンバー" #: lib/profileaction.php:245 msgid "All groups" -msgstr "" +msgstr "全てのグループ" #: lib/profileformaction.php:123 -#, fuzzy msgid "No return-to arguments." -msgstr "そのようなドキュメントはありません。" +msgstr "return-to 引数がありません。" #: lib/profileformaction.php:137 msgid "Unimplemented method." -msgstr "" +msgstr "未実装のメソッド。" #: lib/publicgroupnav.php:78 msgid "Public" @@ -5284,56 +5391,51 @@ msgstr "最近のタグ" #: lib/publicgroupnav.php:88 msgid "Featured" -msgstr "" +msgstr "フィーチャーされた" #: lib/publicgroupnav.php:92 msgid "Popular" msgstr "人気" #: lib/repeatform.php:107 -#, fuzzy msgid "Repeat this notice?" -msgstr "この通知へ返信" +msgstr "このつぶやきを繰り返しますか?" #: lib/repeatform.php:132 -#, fuzzy msgid "Repeat this notice" -msgstr "この通知へ返信" +msgstr "このつぶやきを繰り返す" #: lib/sandboxform.php:67 msgid "Sandbox" -msgstr "" +msgstr "サンドボックス" #: lib/sandboxform.php:78 -#, fuzzy msgid "Sandbox this user" -msgstr "このユーザをアンブロックする" +msgstr "このユーザをサンドボックス" #: lib/searchaction.php:120 -#, fuzzy msgid "Search site" -msgstr "検索" +msgstr "サイト検索" #: lib/searchaction.php:126 msgid "Keyword(s)" -msgstr "" +msgstr "キーワード" #: lib/searchaction.php:162 -#, fuzzy msgid "Search help" -msgstr "検索" +msgstr "ヘルプ検索" #: lib/searchgroupnav.php:80 msgid "People" -msgstr "" +msgstr "人々" #: lib/searchgroupnav.php:81 msgid "Find people on this site" -msgstr "" +msgstr "このサイトの人々を探す" #: lib/searchgroupnav.php:83 msgid "Find content of notices" -msgstr "" +msgstr "つぶやきの内容を探す" #: lib/searchgroupnav.php:85 msgid "Find groups on this site" @@ -5345,73 +5447,68 @@ msgstr "名称未設定のセクション" #: lib/section.php:106 msgid "More..." -msgstr "" +msgstr "さらに..." #: lib/silenceform.php:67 -#, fuzzy msgid "Silence" -msgstr "新しい通知" +msgstr "サイレンス" #: lib/silenceform.php:78 -#, fuzzy msgid "Silence this user" -msgstr "このユーザをブロックする" +msgstr "このユーザをサイレンスに" #: lib/subgroupnav.php:83 -#, fuzzy, php-format +#, php-format msgid "People %s subscribes to" -msgstr "リモートサブスクライブ" +msgstr "人々 %s はフォロー" #: lib/subgroupnav.php:91 -#, fuzzy, php-format +#, php-format msgid "People subscribed to %s" -msgstr "リモートサブスクライブ" +msgstr "人々は %s をフォローしました。" #: lib/subgroupnav.php:99 #, php-format msgid "Groups %s is a member of" -msgstr "" +msgstr "グループ %s はメンバー" #: lib/subs.php:52 msgid "Already subscribed!" -msgstr "" +msgstr "すでにフォローしています!" #: lib/subs.php:56 -#, fuzzy msgid "User has blocked you." -msgstr "プロファイルがありません。" +msgstr "利用者はあなたをブロックしました。" #: lib/subs.php:60 msgid "Could not subscribe." -msgstr "" +msgstr "フォローできません。" #: lib/subs.php:79 msgid "Could not subscribe other to you." -msgstr "" +msgstr "他の人があなたをフォローできません。" #: lib/subs.php:128 -#, fuzzy msgid "Not subscribed!" -msgstr "購読していません!" +msgstr "フォローしていません!" #: lib/subs.php:133 -#, fuzzy msgid "Couldn't delete self-subscription." -msgstr "サブスクリプションを削除できません" +msgstr "自己フォローを削除できません。" #: lib/subs.php:146 msgid "Couldn't delete subscription." -msgstr "サブスクリプションを削除できません" +msgstr "フォローを削除できません" #: lib/subscriberspeopleselftagcloudsection.php:48 #: lib/subscriptionspeopleselftagcloudsection.php:48 msgid "People Tagcloud as self-tagged" -msgstr "" +msgstr "自己タグづけとしての人々タグクラウド" #: lib/subscriberspeopletagcloudsection.php:48 #: lib/subscriptionspeopletagcloudsection.php:48 msgid "People Tagcloud as tagged" -msgstr "" +msgstr "タグ付けとしての人々タグクラウド" #: lib/subscriptionlist.php:126 msgid "(none)" @@ -5419,7 +5516,7 @@ msgstr "(なし)" #: lib/tagcloudsection.php:56 msgid "None" -msgstr "" +msgstr "なし" #: lib/topposterssection.php:74 msgid "Top posters" @@ -5427,29 +5524,27 @@ msgstr "上位投稿者" #: lib/unsandboxform.php:69 msgid "Unsandbox" -msgstr "" +msgstr "アンサンドボックス" #: lib/unsandboxform.php:80 -#, fuzzy msgid "Unsandbox this user" -msgstr "このユーザをアンブロックする" +msgstr "この利用者をアンサンドボックス" #: lib/unsilenceform.php:67 msgid "Unsilence" -msgstr "" +msgstr "アンサイレンス" #: lib/unsilenceform.php:78 -#, fuzzy msgid "Unsilence this user" -msgstr "このユーザをアンブロックする" +msgstr "この利用者をアンサイレンス" #: lib/unsubscribeform.php:113 lib/unsubscribeform.php:137 msgid "Unsubscribe from this user" -msgstr "このユーザからのサブスクライブを解除する" +msgstr "このユーザからのフォローを解除する" #: lib/unsubscribeform.php:137 msgid "Unsubscribe" -msgstr "フォロー中止" +msgstr "フォロー解除" #: lib/userprofile.php:116 msgid "Edit Avatar" @@ -5457,28 +5552,28 @@ msgstr "アバターを編集する" #: lib/userprofile.php:236 msgid "User actions" -msgstr "" +msgstr "利用者アクション" #: lib/userprofile.php:248 -#, fuzzy msgid "Edit profile settings" -msgstr "プロファイル設定" +msgstr "プロファイル設定編集" #: lib/userprofile.php:249 msgid "Edit" -msgstr "" +msgstr "編集" #: lib/userprofile.php:272 msgid "Send a direct message to this user" -msgstr "" +msgstr "この利用者にダイレクトメッセージを送る" #: lib/userprofile.php:273 msgid "Message" -msgstr "" +msgstr "メッセージ" #: lib/userprofile.php:311 +#, fuzzy msgid "Moderate" -msgstr "" +msgstr "司会" #: lib/util.php:837 msgid "a few seconds ago" @@ -5525,27 +5620,27 @@ msgid "about a year ago" msgstr "約 1 年前" #: lib/webcolor.php:82 -#, fuzzy, php-format +#, php-format msgid "%s is not a valid color!" -msgstr "ホームページのURLが不適切です。" +msgstr "%sは有効な色ではありません!" #: lib/webcolor.php:123 #, php-format msgid "%s is not a valid color! Use 3 or 6 hex chars." -msgstr "" +msgstr "%s は有効な色ではありません! 3か6の16進数を使ってください。" #: scripts/maildaemon.php:48 msgid "Could not parse message." -msgstr "" +msgstr "メッセージを分析できませんでした。" #: scripts/maildaemon.php:53 msgid "Not a registered user." -msgstr "" +msgstr "登録ユーザではありません。" #: scripts/maildaemon.php:57 msgid "Sorry, that is not your incoming email address." -msgstr "" +msgstr "すみません、それはあなたの入って来るメールアドレスではありません。" #: scripts/maildaemon.php:61 msgid "Sorry, no incoming email allowed." -msgstr "" +msgstr "すみません、入ってくるメールは許可されていません。" diff --git a/locale/ko/LC_MESSAGES/statusnet.po b/locale/ko/LC_MESSAGES/statusnet.po index 9493223b2..e90f2d338 100644 --- a/locale/ko/LC_MESSAGES/statusnet.po +++ b/locale/ko/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:18+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:54+0000\n" "Language-Team: Korean\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ko\n" "X-Message-Group: out-statusnet\n" @@ -2613,7 +2613,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "태그 클라우드" @@ -4379,6 +4379,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "비밀번호 변경" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "비밀번호 변경" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "실행결과" diff --git a/locale/mk/LC_MESSAGES/statusnet.po b/locale/mk/LC_MESSAGES/statusnet.po index 537618601..bd346776c 100644 --- a/locale/mk/LC_MESSAGES/statusnet.po +++ b/locale/mk/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:21+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:11:58+0000\n" "Language-Team: Macedonian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: out-statusnet\n" @@ -429,9 +429,8 @@ msgid "No such notice." msgstr "Нема такво известување." #: actions/apistatusesretweet.php:83 -#, fuzzy msgid "Cannot repeat your own notice." -msgstr "Не може да се регистрирате ако не ја прифаќате лиценцата." +msgstr "Не можете да ја повторувате сопствената белешка." #: actions/apistatusesretweet.php:91 #, fuzzy @@ -439,9 +438,8 @@ msgid "Already repeated that notice." msgstr "Веќе сте пријавени!" #: actions/apistatusesshow.php:138 -#, fuzzy msgid "Status deleted." -msgstr "Аватарот е ажуриран." +msgstr "Статусот е избришан." #: actions/apistatusesshow.php:144 msgid "No status with that ID found." @@ -449,9 +447,9 @@ msgstr "" #: actions/apistatusesupdate.php:157 actions/newnotice.php:155 #: scripts/maildaemon.php:71 -#, fuzzy, php-format +#, php-format msgid "That's too long. Max notice size is %d chars." -msgstr "Ова е предолго. Максималната должина е 140 знаци." +msgstr "Ова е предолго. Максималната дозволена должина изнесува %d знаци." #: actions/apistatusesupdate.php:198 msgid "Not found" @@ -463,9 +461,8 @@ msgid "Max notice size is %d chars, including attachment URL." msgstr "" #: actions/apisubscriptions.php:231 actions/apisubscriptions.php:261 -#, fuzzy msgid "Unsupported format." -msgstr "Неподдржан фомрат на слики." +msgstr "Неподдржан формат." #: actions/apitimelinefavorites.php:108 #, php-format @@ -490,9 +487,9 @@ msgid "Updates from %1$s on %2$s!" msgstr "" #: actions/apitimelinementions.php:117 -#, fuzzy, php-format +#, php-format msgid "%1$s / Updates mentioning %2$s" -msgstr "%1$s статус на %2$s" +msgstr "%1$s / Подновувања кои споменуваат %2$s" #: actions/apitimelinementions.php:127 #, php-format @@ -530,19 +527,17 @@ msgid "Notices tagged with %s" msgstr "" #: actions/apitimelinetag.php:108 actions/tagrss.php:64 -#, fuzzy, php-format +#, php-format msgid "Updates tagged with %1$s on %2$s!" -msgstr "Микроблог на %s" +msgstr "Подновувањата се означени со %1$s на %2$s!" #: actions/apiusershow.php:96 -#, fuzzy msgid "Not found." -msgstr "Не е пронаједено барање." +msgstr "Не е пронајдено." #: actions/attachment.php:73 -#, fuzzy msgid "No such attachment." -msgstr "Нема таков документ." +msgstr "Нема таков прилог." #: actions/avatarbynickname.php:59 actions/grouprss.php:91 #: actions/leavegroup.php:76 @@ -575,9 +570,8 @@ msgstr "" #: actions/avatarsettings.php:119 actions/avatarsettings.php:197 #: actions/grouplogo.php:251 -#, fuzzy msgid "Avatar settings" -msgstr "Поставки" +msgstr "Нагодувања на аватарот" #: actions/avatarsettings.php:127 actions/avatarsettings.php:205 #: actions/grouplogo.php:199 actions/grouplogo.php:259 @@ -642,14 +636,12 @@ msgid "Failed updating avatar." msgstr "Товарањето на аватарот не успеа." #: actions/avatarsettings.php:393 -#, fuzzy msgid "Avatar deleted." -msgstr "Аватарот е ажуриран." +msgstr "Аватарот е избришан." #: actions/block.php:69 -#, fuzzy msgid "You already blocked that user." -msgstr "Веќе сте пријавени!" +msgstr "Веќе го имате блокирано тој корисник." #: actions/block.php:105 actions/block.php:128 actions/groupblock.php:160 #, fuzzy @@ -1005,14 +997,12 @@ msgid "Could not update group." msgstr "Корисникот не може да се освежи/" #: actions/editgroup.php:259 classes/User_group.php:390 -#, fuzzy msgid "Could not create aliases." -msgstr "Информациите за аватарот не може да се снимат" +msgstr "Не можеше да се создадат алијаси." #: actions/editgroup.php:269 -#, fuzzy msgid "Options saved." -msgstr "Поставките се снимени." +msgstr "Нагодувањата се зачувани." #: actions/emailsettings.php:60 msgid "Email Settings" @@ -1411,9 +1401,8 @@ msgid "Unable to save your design settings!" msgstr "" #: actions/groupdesignsettings.php:308 actions/userdesignsettings.php:231 -#, fuzzy msgid "Design preferences saved." -msgstr "Преференциите се снимени." +msgstr "Нагодувањата се зачувани." #: actions/grouplogo.php:139 actions/grouplogo.php:192 msgid "Group logo" @@ -1430,9 +1419,8 @@ msgid "Pick a square area of the image to be the logo." msgstr "" #: actions/grouplogo.php:396 -#, fuzzy msgid "Logo updated." -msgstr "Аватарот е ажуриран." +msgstr "Логото е подновено." #: actions/grouplogo.php:398 #, fuzzy @@ -1474,9 +1462,9 @@ msgid "Make this user an admin" msgstr "" #: actions/grouprss.php:133 -#, fuzzy, php-format +#, php-format msgid "Updates from members of %1$s on %2$s!" -msgstr "Микроблог на %s" +msgstr "Подновувања од членови на %1$s на %2$s!" #: actions/groups.php:62 lib/profileaction.php:210 lib/profileaction.php:230 #: lib/publicgroupnav.php:81 lib/searchgroupnav.php:84 lib/subgroupnav.php:98 @@ -1546,9 +1534,8 @@ msgid "User is not blocked from group." msgstr "Корисникот нема профил." #: actions/groupunblock.php:128 actions/unblock.php:86 -#, fuzzy msgid "Error removing the block." -msgstr "Грешка во снимањето на корисникот." +msgstr "Грешка при отстранување на блокот." #: actions/imsettings.php:59 msgid "IM Settings" @@ -2036,9 +2023,8 @@ msgid "Notice Search" msgstr "" #: actions/othersettings.php:60 -#, fuzzy msgid "Other Settings" -msgstr "Поставки" +msgstr "Други нагодувања" #: actions/othersettings.php:71 msgid "Manage various other options." @@ -2057,9 +2043,8 @@ msgid "Automatic shortening service to use." msgstr "" #: actions/othersettings.php:122 -#, fuzzy msgid "View profile designs" -msgstr "Поставки на профилот" +msgstr "Види изгледи на профилот" #: actions/othersettings.php:123 msgid "Show or hide profile designs." @@ -2094,9 +2079,8 @@ msgid "Change your password." msgstr "Промени ја лозинката" #: actions/passwordsettings.php:96 actions/recoverpassword.php:231 -#, fuzzy msgid "Password change" -msgstr "Лозинката е снимена." +msgstr "Промена на лозинка" #: actions/passwordsettings.php:104 msgid "Old password" @@ -2223,19 +2207,16 @@ msgid "Avatars" msgstr "Аватар" #: actions/pathsadminpanel.php:257 -#, fuzzy msgid "Avatar server" -msgstr "Поставки" +msgstr "Сервер на аватарот" #: actions/pathsadminpanel.php:261 -#, fuzzy msgid "Avatar path" -msgstr "Аватарот е ажуриран." +msgstr "Патека на аватарот" #: actions/pathsadminpanel.php:265 -#, fuzzy msgid "Avatar directory" -msgstr "Аватарот е ажуриран." +msgstr "Директориум на аватарот" #: actions/pathsadminpanel.php:274 msgid "Backgrounds" @@ -2442,18 +2423,16 @@ msgid "Couldn't update user for autosubscribe." msgstr "" #: actions/profilesettings.php:354 -#, fuzzy msgid "Couldn't save location prefs." -msgstr "Профилот не може да се сними." +msgstr "Не можев да ги зачувам нагодувањата за локација" #: actions/profilesettings.php:366 msgid "Couldn't save profile." msgstr "Профилот не може да се сними." #: actions/profilesettings.php:374 -#, fuzzy msgid "Couldn't save tags." -msgstr "Профилот не може да се сними." +msgstr "Не можев да ги зачувам ознаките." #: actions/profilesettings.php:382 lib/adminpanelaction.php:126 msgid "Settings saved." @@ -2552,7 +2531,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -3388,9 +3367,8 @@ msgid "How long users must wait (in seconds) to post the same thing again." msgstr "" #: actions/siteadminpanel.php:388 actions/useradminpanel.php:313 -#, fuzzy msgid "Save site settings" -msgstr "Поставки" +msgstr "Зачувај нагодувања на веб-страницата" #: actions/smssettings.php:58 msgid "SMS Settings" @@ -3893,9 +3871,8 @@ msgid "No ID." msgstr "Нема id." #: actions/userdesignsettings.php:76 lib/designsettings.php:65 -#, fuzzy msgid "Profile design" -msgstr "Поставки на профилот" +msgstr "Изглед на профилот" #: actions/userdesignsettings.php:87 lib/designsettings.php:76 msgid "" @@ -4284,6 +4261,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Промена на лозинка" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Промена на лозинка" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" @@ -5403,9 +5390,8 @@ msgid "User actions" msgstr "" #: lib/userprofile.php:248 -#, fuzzy msgid "Edit profile settings" -msgstr "Поставки на профилот" +msgstr "Уреди нагодувања на профилот" #: lib/userprofile.php:249 msgid "Edit" diff --git a/locale/nb/LC_MESSAGES/statusnet.po b/locale/nb/LC_MESSAGES/statusnet.po index 6dfb5813f..efb2320b6 100644 --- a/locale/nb/LC_MESSAGES/statusnet.po +++ b/locale/nb/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:24+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:02+0000\n" "Language-Team: Norwegian (bokmål)‬\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: out-statusnet\n" @@ -2563,7 +2563,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4278,6 +4278,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Passordet ble lagret" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Passordet ble lagret" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/nl/LC_MESSAGES/statusnet.po b/locale/nl/LC_MESSAGES/statusnet.po index e9095b9c8..378b88a23 100644 --- a/locale/nl/LC_MESSAGES/statusnet.po +++ b/locale/nl/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:30+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:13+0000\n" "Language-Team: Dutch\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: out-statusnet\n" @@ -2631,7 +2631,7 @@ msgstr "" "U kunt een [gebruiker registeren](%%action.register%%) en dan de eerste zijn " "die er een plaatst!" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Woordwolk" @@ -4421,6 +4421,16 @@ msgstr "Mededelingen die deze bijlage bevatten" msgid "Tags for this attachment" msgstr "Labels voor deze bijlage" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Wachtwoord wijzigen" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Wachtwoord wijzigen" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Commandoresultaten" diff --git a/locale/nn/LC_MESSAGES/statusnet.po b/locale/nn/LC_MESSAGES/statusnet.po index 59d3d5f70..66a393e7b 100644 --- a/locale/nn/LC_MESSAGES/statusnet.po +++ b/locale/nn/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:27+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:07+0000\n" "Language-Team: Norwegian Nynorsk\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nn\n" "X-Message-Group: out-statusnet\n" @@ -2622,7 +2622,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Emne sky" @@ -4396,6 +4396,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Endra passord" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Endra passord" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultat frå kommandoen" diff --git a/locale/pl/LC_MESSAGES/statusnet.po b/locale/pl/LC_MESSAGES/statusnet.po index 1b72b8a99..63fb0d9d7 100644 --- a/locale/pl/LC_MESSAGES/statusnet.po +++ b/locale/pl/LC_MESSAGES/statusnet.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:33+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:18+0000\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 " "|| n%100>=20) ? 1 : 2);\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: out-statusnet\n" @@ -2597,7 +2597,7 @@ msgstr "" "Dlaczego nie [zarejestrujesz konta](%%action.register%%) i zostaniesz " "pierwszym, który go wyśle." -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Chmura znaczników" @@ -4367,6 +4367,16 @@ msgstr "Powiadamia, kiedy pojawia się ten załącznik" msgid "Tags for this attachment" msgstr "Znaczniki dla tego załącznika" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Zmiana hasła" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Zmiana hasła" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Wyniki polecenia" diff --git a/locale/pt/LC_MESSAGES/statusnet.po b/locale/pt/LC_MESSAGES/statusnet.po index c8af43117..9e0172663 100644 --- a/locale/pt/LC_MESSAGES/statusnet.po +++ b/locale/pt/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:36+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:21+0000\n" "Language-Team: Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: out-statusnet\n" @@ -2605,7 +2605,7 @@ msgstr "" "Podia [registar uma conta](%%action.register%%) e ser a primeira pessoa a " "publicar uma!" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Nuvem de categorias" @@ -4375,6 +4375,16 @@ msgstr "Notas em que este anexo aparece" msgid "Tags for this attachment" msgstr "Categorias para este anexo" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Mudança da palavra-chave" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Mudança da palavra-chave" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultados do comando" diff --git a/locale/pt_BR/LC_MESSAGES/statusnet.po b/locale/pt_BR/LC_MESSAGES/statusnet.po index 4ebebf074..72f9897f2 100644 --- a/locale/pt_BR/LC_MESSAGES/statusnet.po +++ b/locale/pt_BR/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:40+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:24+0000\n" "Language-Team: Brazilian Portuguese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: out-statusnet\n" @@ -2621,7 +2621,7 @@ msgstr "" "Por que você não [registra uma conta](%%action.register%%) pra ser o " "primeiro a publicar?" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Nuvem de etiquetas" @@ -4393,6 +4393,16 @@ msgstr "Mensagens onde este anexo aparece" msgid "Tags for this attachment" msgstr "Etiquetas para este anexo" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Alterar a senha" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Alterar a senha" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultados do comando" diff --git a/locale/ru/LC_MESSAGES/statusnet.po b/locale/ru/LC_MESSAGES/statusnet.po index de2737689..b5301b1ab 100644 --- a/locale/ru/LC_MESSAGES/statusnet.po +++ b/locale/ru/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:45+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:28+0000\n" "Language-Team: Russian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: out-statusnet\n" @@ -2611,7 +2611,7 @@ msgstr "" "Почему бы не [зарегистрироваться](%%action.register%%), чтобы отправить " "первым?" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Облако тегов" @@ -4384,6 +4384,16 @@ msgstr "Сообщает, где появляется это вложение" msgid "Tags for this attachment" msgstr "Теги для этого вложения" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Пароль сохранён." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Пароль сохранён." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Команда исполнена" diff --git a/locale/statusnet.po b/locale/statusnet.po index 38db608dc..44a0d92fc 100644 --- a/locale/statusnet.po +++ b/locale/statusnet.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2463,7 +2463,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4114,6 +4114,14 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +msgid "Password changing failed" +msgstr "" + +#: lib/authenticationplugin.php:197 +msgid "Password changing is not allowed" +msgstr "" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/sv/LC_MESSAGES/statusnet.po b/locale/sv/LC_MESSAGES/statusnet.po index 64253a52e..9d1e7b9c6 100644 --- a/locale/sv/LC_MESSAGES/statusnet.po +++ b/locale/sv/LC_MESSAGES/statusnet.po @@ -9,12 +9,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:48+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:32+0000\n" "Language-Team: Swedish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: sv\n" "X-Message-Group: out-statusnet\n" @@ -2567,7 +2567,7 @@ msgstr "" "Varför inte [registrera ett konto](%%action.register%%) och bli först att " "posta en!" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Taggmoln" @@ -4313,6 +4313,16 @@ msgstr "Notiser där denna bilaga förekommer" msgid "Tags for this attachment" msgstr "Taggar för denna billaga" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Byte av lösenord" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Byte av lösenord" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Resultat av kommando" diff --git a/locale/te/LC_MESSAGES/statusnet.po b/locale/te/LC_MESSAGES/statusnet.po index ffbf5a990..028e60c47 100644 --- a/locale/te/LC_MESSAGES/statusnet.po +++ b/locale/te/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:51+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:35+0000\n" "Language-Team: Telugu\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: out-statusnet\n" @@ -2191,9 +2191,8 @@ msgid "Avatar path" msgstr "అవతారాన్ని తాజాకరించాం." #: actions/pathsadminpanel.php:265 -#, fuzzy msgid "Avatar directory" -msgstr "అవతారాన్ని తొలగించాం." +msgstr "అవతారాల సంచయం" #: actions/pathsadminpanel.php:274 msgid "Backgrounds" @@ -2509,7 +2508,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "ట్యాగు మేఘం" @@ -3266,7 +3265,7 @@ msgstr "ఆహ్వానితులకు మాత్రమే" #: actions/siteadminpanel.php:329 msgid "Make registration invitation only." -msgstr "" +msgstr "ఆహ్వానితులు మాత్రమే నమోదు అవ్వగలిగేలా చెయ్యి." #: actions/siteadminpanel.php:333 #, fuzzy @@ -3357,7 +3356,7 @@ msgstr "" #: actions/smssettings.php:123 msgid "Awaiting confirmation on this phone number." -msgstr "" +msgstr "ఈ ఫోను నంబరు యొక్క నిర్ధారణకై వేచివుంది." #: actions/smssettings.php:130 msgid "Confirmation code" @@ -4205,6 +4204,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "సంకేతపదం మార్పు" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "సంకేతపదం మార్పు" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "ఆదేశ ఫలితాలు" @@ -4334,7 +4343,7 @@ msgstr "" #: lib/command.php:563 #, php-format msgid "Subscribed to %s" -msgstr "" +msgstr "%sకి చందా చేరారు" #: lib/command.php:584 msgid "Specify the name of the user to unsubscribe from" diff --git a/locale/tr/LC_MESSAGES/statusnet.po b/locale/tr/LC_MESSAGES/statusnet.po index 238252591..8d8cbbfd8 100644 --- a/locale/tr/LC_MESSAGES/statusnet.po +++ b/locale/tr/LC_MESSAGES/statusnet.po @@ -8,12 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:54+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:43+0000\n" "Language-Team: Turkish\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: out-statusnet\n" @@ -2596,7 +2596,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4331,6 +4331,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Parola kaydedildi." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Parola kaydedildi." + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" diff --git a/locale/uk/LC_MESSAGES/statusnet.po b/locale/uk/LC_MESSAGES/statusnet.po index df464a5e4..228202cc8 100644 --- a/locale/uk/LC_MESSAGES/statusnet.po +++ b/locale/uk/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:38:57+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:46+0000\n" "Language-Team: Ukrainian\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: out-statusnet\n" @@ -2603,7 +2603,7 @@ msgstr "" "Чому б не [зареєструватись](%%%%action.register%%%%) і не написати щось " "цікаве!" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "Хмарка теґів" @@ -4373,6 +4373,16 @@ msgstr "Дописи, до яких прикріплено це вкладенн msgid "Tags for this attachment" msgstr "Теґи для цього вкладення" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Пароль замінено" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Пароль замінено" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "Результати команди" diff --git a/locale/vi/LC_MESSAGES/statusnet.po b/locale/vi/LC_MESSAGES/statusnet.po index 916264939..029f4c86f 100644 --- a/locale/vi/LC_MESSAGES/statusnet.po +++ b/locale/vi/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:39:00+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:52+0000\n" "Language-Team: Vietnamese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: vi\n" "X-Message-Group: out-statusnet\n" @@ -2695,7 +2695,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4491,6 +4491,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "Đã lưu mật khẩu." + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "Đã lưu mật khẩu." + #: lib/channel.php:138 lib/channel.php:158 #, fuzzy msgid "Command results" diff --git a/locale/zh_CN/LC_MESSAGES/statusnet.po b/locale/zh_CN/LC_MESSAGES/statusnet.po index c27fbe4eb..576797ad3 100644 --- a/locale/zh_CN/LC_MESSAGES/statusnet.po +++ b/locale/zh_CN/LC_MESSAGES/statusnet.po @@ -10,12 +10,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:39:03+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:12:55+0000\n" "Language-Team: Simplified Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: out-statusnet\n" @@ -2627,7 +2627,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "标签云聚集" @@ -4404,6 +4404,16 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +#, fuzzy +msgid "Password changing failed" +msgstr "密码已保存。" + +#: lib/authenticationplugin.php:197 +#, fuzzy +msgid "Password changing is not allowed" +msgstr "密码已保存。" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "执行结果" diff --git a/locale/zh_TW/LC_MESSAGES/statusnet.po b/locale/zh_TW/LC_MESSAGES/statusnet.po index 59e3a3c18..906f8fab1 100644 --- a/locale/zh_TW/LC_MESSAGES/statusnet.po +++ b/locale/zh_TW/LC_MESSAGES/statusnet.po @@ -7,12 +7,12 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 10:37+0000\n" -"PO-Revision-Date: 2010-01-03 10:39:06+0000\n" +"POT-Creation-Date: 2010-01-05 22:10+0000\n" +"PO-Revision-Date: 2010-01-05 22:13:02+0000\n" "Language-Team: Traditional Chinese\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: MediaWiki 1.16alpha (r60575); Translate extension (2009-12-06)\n" +"X-Generator: MediaWiki 1.16alpha (r60693); Translate extension (2010-01-04)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hant\n" "X-Message-Group: out-statusnet\n" @@ -2541,7 +2541,7 @@ msgid "" "one!" msgstr "" -#: actions/publictagcloud.php:135 +#: actions/publictagcloud.php:131 msgid "Tag cloud" msgstr "" @@ -4247,6 +4247,14 @@ msgstr "" msgid "Tags for this attachment" msgstr "" +#: lib/authenticationplugin.php:182 lib/authenticationplugin.php:187 +msgid "Password changing failed" +msgstr "" + +#: lib/authenticationplugin.php:197 +msgid "Password changing is not allowed" +msgstr "" + #: lib/channel.php:138 lib/channel.php:158 msgid "Command results" msgstr "" -- cgit v1.2.3-54-g00ecf From 250bcfa8dc3ebf3c2c8458f363a62c529eb3a7f6 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Tue, 5 Jan 2010 17:47:37 -0500 Subject: Require users to login to view attachments on private sites Thank you jeff-themovie for this implementation! --- README | 20 ++++++++++++---- actions/getfile.php | 66 ++++++++++++++++++++++++++++++++++++++--------------- classes/File.php | 33 ++++++++++++++++----------- config.php.sample | 17 +++++++++++++- htaccess.sample | 8 ------- lib/default.php | 1 + 6 files changed, 100 insertions(+), 45 deletions(-) diff --git a/README b/README index 6e39890cb..c26fe786e 100644 --- a/README +++ b/README @@ -710,11 +710,21 @@ private site, but users of the private site may be able to subscribe to users on a remote site. (Or not... it's not well tested.) The "proper behaviour" hasn't been defined here, so handle with care. -If fancy URLs is enabled, access to file attachments can also be -restricted to logged-in users only. Uncomment the appropriate rewrite -rule in .htaccess or your server's httpd.conf. (This most likely will -not work if you are using a virtual server for attachments, so consider -the performance/security tradeoff.) +Access to file attachments can also be restricted to logged-in users only. +1. Add a directory outside the web root where your file uploads will be + stored. Usually a command like this will work: + + mkdir /var/www/mublog-files + +2. Make the file uploads directory writeable by the web server. An + insecure way to do this is: + + chmod a+x /var/www/mublog-files + +3. Tell StatusNet to use this directory for file uploads. Add a line + like this to your config.php: + + $config['attachments']['dir'] = '/var/www/mublog-files'; Upgrading ========= diff --git a/actions/getfile.php b/actions/getfile.php index ecda34c0f..cd327e410 100644 --- a/actions/getfile.php +++ b/actions/getfile.php @@ -1,13 +1,13 @@ . * - * @category Personal + * @category PrivateAttachments * @package StatusNet * @author Jeffery To - * @copyright 2008-2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 * @link http://status.net/ */ -if (!defined('STATUSNET') && !defined('LACONICA')) { +if (!defined('STATUSNET')) { exit(1); } require_once 'MIME/Type.php'; /** - * Action for getting a file attachment + * An action for returning a requested file * - * @category Personal - * @package StatusNet - * @author Jeffery To - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ + * The StatusNet system will do an implicit user check if the site is + * private before allowing this to continue + * + * @category PrivateAttachments + * @package StatusNet + * @author Jeffery To + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ */ class GetfileAction extends Action @@ -68,7 +72,7 @@ class GetfileAction extends Action $path = null; if ($filename) { - $path = common_config('attachments', 'dir') . $filename; + $path = File::path($filename); } if (empty($path) or !file_exists($path)) { @@ -103,6 +107,10 @@ class GetfileAction extends Action function lastModified() { + if (common_config('site', 'use_x_sendfile')) { + return null; + } + return filemtime($this->path); } @@ -114,8 +122,24 @@ class GetfileAction extends Action * * @return string etag http header */ + function etag() { + if (common_config('site', 'use_x_sendfile')) { + return null; + } + + $cache = common_memcache(); + if($cache) { + $key = common_cache_key('attachments:etag:' . $this->path); + $etag = $cache->get($key); + if($etag === false) { + $etag = crc32(file_get_contents($this->path)); + $cache->set($key,$etag); + } + return $etag; + } + $stat = stat($this->path); return '"' . $stat['ino'] . '-' . $stat['size'] . '-' . $stat['mtime'] . '"'; } @@ -133,13 +157,19 @@ class GetfileAction extends Action // undo headers set by PHP sessions $sec = session_cache_expire() * 60; header('Expires: ' . date(DATE_RFC1123, time() + $sec)); - header('Cache-Control: public, max-age=' . $sec); - header('Pragma: public'); + header('Cache-Control: max-age=' . $sec); parent::handle($args); $path = $this->path; + header('Content-Type: ' . MIME_Type::autoDetect($path)); - readfile($path); + + if (common_config('site', 'use_x_sendfile')) { + header('X-Sendfile: ' . $path); + } else { + header('Content-Length: ' . filesize($path)); + readfile($path); + } } } diff --git a/classes/File.php b/classes/File.php index e04a9d525..6173f31d6 100644 --- a/classes/File.php +++ b/classes/File.php @@ -182,25 +182,32 @@ class File extends Memcached_DataObject static function url($filename) { - $path = common_config('attachments', 'path'); + if(common_config('site','private')) { - if ($path[strlen($path)-1] != '/') { - $path .= '/'; - } + return common_local_url('getfile', + array('filename' => $filename)); - if ($path[0] != '/') { - $path = '/'.$path; - } + } else { + $path = common_config('attachments', 'path'); - $server = common_config('attachments', 'server'); + if ($path[strlen($path)-1] != '/') { + $path .= '/'; + } - if (empty($server)) { - $server = common_config('site', 'server'); - } + if ($path[0] != '/') { + $path = '/'.$path; + } + + $server = common_config('attachments', 'server'); - // XXX: protocol + if (empty($server)) { + $server = common_config('site', 'server'); + } - return 'http://'.$server.$path.$filename; + // XXX: protocol + + return 'http://'.$server.$path.$filename; + } } function getEnclosure(){ diff --git a/config.php.sample b/config.php.sample index 91e6614c0..b8852dc67 100644 --- a/config.php.sample +++ b/config.php.sample @@ -41,6 +41,20 @@ $config['site']['path'] = 'statusnet'; // Make the site invisible to non-logged-in users // $config['site']['private'] = true; +// If your web server supports X-Sendfile (Apache with mod_xsendfile, +// lighttpd, nginx), you can enable X-Sendfile support for better +// performance. Presently, only attachment serving when the site is +// in private mode will use X-Sendfile. +// $config['site']['X-Sendfile'] = false; +// You may also need to enable X-Sendfile support for your web server and +// allow it to access files outside of the web root. For Apache with +// mod_xsendfile, you can add these to your .htaccess or server config: +// +// XSendFile on +// XSendFileAllowAbove on +// +// See http://tn123.ath.cx/mod_xsendfile/ for mod_xsendfile. + // If you want logging sent to a file instead of syslog // $config['site']['logfile'] = '/tmp/statusnet.log'; @@ -265,6 +279,7 @@ $config['sphinx']['port'] = 3312; // $config['attachments']['user_quota'] = 50000000; // $config['attachments']['monthly_quota'] = 15000000; // $config['attachments']['uploads'] = true; -// $config['attachments']['path'] = "/file/"; +// $config['attachments']['path'] = "/file/"; //ignored if site is private +// $config['attachments']['dir'] = INSTALLDIR . '/file/'; // $config['oohembed']['endpoint'] = 'http://oohembed.com/oohembed/'; diff --git a/htaccess.sample b/htaccess.sample index 91ae9da9b..37eb8e01e 100644 --- a/htaccess.sample +++ b/htaccess.sample @@ -5,14 +5,6 @@ RewriteBase /mublog/ - # If your site is private and want to only allow logged-in users to - # be able to download file attachments, uncomment this rule. - # - # If you have a custom attachment path - # ($config['attachments']['path']), change "file/" to match. - # - #RewriteRule ^file/(.*) getfile/$1 - RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) index.php?p=$1 [L,QSA] diff --git a/lib/default.php b/lib/default.php index eea11eb2b..f2e577149 100644 --- a/lib/default.php +++ b/lib/default.php @@ -54,6 +54,7 @@ $default = 'dupelimit' => 60, # default for same person saying the same thing 'textlimit' => 140, 'indent' => true, + 'use_x_sendfile' => false, ), 'db' => array('database' => 'YOU HAVE TO SET THIS IN config.php', -- cgit v1.2.3-54-g00ecf From aff78e51216e09a6e5c95c775d636530c85736fc Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 5 Jan 2010 15:05:53 -0800 Subject: Cache fixes: * We now cache negative lookups; clear them in Memcached_DataObject->insert() * Mark file.url as a unique key in statusnet.ini so its negative lookups are cleared properly (first save of a notice with a new URL was failing due to double-insert) * Now using serialization for default in-process cache instead of just saving objects; avoids potential corruption if you save an object to cache, change the original object, then fetch the same key from cache again --- classes/Memcached_DataObject.php | 1 + classes/statusnet.ini | 1 + lib/cache.php | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index aab1cace6..c31b2a546 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -142,6 +142,7 @@ class Memcached_DataObject extends DB_DataObject function insert() { + $this->decache(); // in case of cached negative lookups $result = parent::insert(); return $result; } diff --git a/classes/statusnet.ini b/classes/statusnet.ini index ac31148da..0db2c5d6e 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -92,6 +92,7 @@ modified = 384 [file__keys] id = N +url = U [file_oembed] file_id = 129 diff --git a/lib/cache.php b/lib/cache.php index 85e8badc1..b7b34c050 100644 --- a/lib/cache.php +++ b/lib/cache.php @@ -120,7 +120,7 @@ class Cache if (Event::handle('StartCacheGet', array(&$key, &$value))) { if (array_key_exists($key, $this->_items)) { - $value = $this->_items[$key]; + $value = unserialize($this->_items[$key]); } Event::handle('EndCacheGet', array($key, &$value)); } @@ -146,7 +146,7 @@ class Cache if (Event::handle('StartCacheSet', array(&$key, &$value, &$flag, &$expiry, &$success))) { - $this->_items[$key] = $value; + $this->_items[$key] = serialize($value); $success = true; -- cgit v1.2.3-54-g00ecf From 92154969029e15673b84f5cc228099f2f5c1b942 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 5 Jan 2010 15:04:08 -0800 Subject: Ticket 2135: trim overlong repeats with ellipsis rather than failing. In web interface and retweet/repeat API we show the original untrimmed text, but some back-compat API messages will still show the trimmed 'RT' version. This matches Twitter's behavior on overlong retweets, though we're outputting the RT version in more API results than they do. --- classes/Notice.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/classes/Notice.php b/classes/Notice.php index e8bc509a6..299ed696c 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1356,12 +1356,21 @@ class Notice extends Memcached_DataObject { $author = Profile::staticGet('id', $this->profile_id); - // FIXME: truncate on long repeats...? - $content = sprintf(_('RT @%1$s %2$s'), $author->nickname, $this->content); + $maxlen = common_config('site', 'textlimit'); + if (mb_strlen($content) > $maxlen) { + // Web interface and current Twitter API clients will + // pull the original notice's text, but some older + // clients and RSS/Atom feeds will see this trimmed text. + // + // Unfortunately this is likely to lose tags or URLs + // at the end of long notices. + $content = mb_substr($content, 0, $maxlen - 4) . ' ...'; + } + return self::saveNew($repeater_id, $content, $source, array('repeat_of' => $this->id)); } -- cgit v1.2.3-54-g00ecf From 8af7ba022681b5a8b9141056055c5bd5c980e3e9 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Tue, 5 Jan 2010 16:15:12 -0800 Subject: Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited) --- classes/Notice.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Notice.php b/classes/Notice.php index 299ed696c..9fa022650 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -1361,7 +1361,7 @@ class Notice extends Memcached_DataObject $this->content); $maxlen = common_config('site', 'textlimit'); - if (mb_strlen($content) > $maxlen) { + if ($maxlen > 0 && mb_strlen($content) > $maxlen) { // Web interface and current Twitter API clients will // pull the original notice's text, but some older // clients and RSS/Atom feeds will see this trimmed text. -- cgit v1.2.3-54-g00ecf From fffd66bf832267f218dd9e8bd25f9e7ad821647e Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 00:06:43 -0500 Subject: Add shiny's mollom plugin --- plugins/Mollom/MollomPlugin.php | 894 ++++++++++++++++++++++++++++++++++++++++ plugins/Mollom/README | 18 + 2 files changed, 912 insertions(+) create mode 100644 plugins/Mollom/MollomPlugin.php create mode 100644 plugins/Mollom/README diff --git a/plugins/Mollom/MollomPlugin.php b/plugins/Mollom/MollomPlugin.php new file mode 100644 index 000000000..c1ac3d132 --- /dev/null +++ b/plugins/Mollom/MollomPlugin.php @@ -0,0 +1,894 @@ +. + * + * Mollom is a bayesian spam checker, wrapped into a webservice + * This plugin is based on the Drupal Mollom module + * + * @category Plugin + * @package Laconica + * @author Brenda Wallace + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +define('MOLLOMPLUGIN_VERSION', '0.1'); +define('MOLLOM_API_VERSION', '1.0'); + +define('MOLLOM_ANALYSIS_UNKNOWN' , 0); +define('MOLLOM_ANALYSIS_HAM' , 1); +define('MOLLOM_ANALYSIS_SPAM' , 2); +define('MOLLOM_ANALYSIS_UNSURE' , 3); + +define('MOLLOM_MODE_DISABLED', 0); +define('MOLLOM_MODE_CAPTCHA' , 1); +define('MOLLOM_MODE_ANALYSIS', 2); + +define('MOLLOM_FALLBACK_BLOCK' , 0); +define('MOLLOM_FALLBACK_ACCEPT', 1); + +define('MOLLOM_ERROR' , 1000); +define('MOLLOM_REFRESH' , 1100); +define('MOLLOM_REDIRECT', 1200); + +/** + * Plugin to check submitted notices with Mollom + * + * Mollom is a bayesian spam filter provided by webservice. + * + * @category Plugin + * @package Laconica + * @author Brenda Wallace + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * + * @see Event + */ + + + +class MollomPlugin extends Plugin +{ + function __construct($url=null) { + parent::__construct(); + } + + function onStartNoticeSave($notice) + { + error_log(print_r($notice, 1)); + if (common_config('mollom', 'public_key')) { + //Check spam + $data = array( + 'post_body' => $notice->content, + 'author_name' => $profile->nickname, + 'author_url' => $profile->homepage, + 'author_id' => $profile->id, + 'author_ip' => $this->getClientIp(), + ); + $response = $this->mollom('mollom.checkContent', $data); + if ($response['spam'] == MOLLOM_ANALYSIS_SPAM) { + throw new ClientException(_("Spam Detected"), 400); + } + if ($response['spam'] == MOLLOM_ANALYSIS_UNSURE) { + //if unsure, let through + } + if($response['spam'] == MOLLOM_ANALYSIS_HAM) { + // all good! :-) + } + } + + return true; + } + + function getClientIP() { + if (isset($_SERVER) && array_key_exists('REQUEST_METHOD', $_SERVER)) { + // Note: order matters here; use proxy-forwarded stuff first + foreach (array('HTTP_X_FORWARDED_FOR', 'CLIENT-IP', 'REMOTE_ADDR') as $k) { + if (isset($_SERVER[$k])) { + return $_SERVER[$k]; + } + } + } + return '127.0.0.1'; + } + /** + * Call a remote procedure at the Mollom server. This function will + * automatically add the information required to authenticate against + * Mollom. + */ + function mollom($method, $data = array()) { + if (!extension_loaded('xmlrpc')) { + if (!dl('xmlrpc.so')) { + common_log(LOG_ERR, "Can't pingback; xmlrpc extension not available."); + } + } + + // Construct the server URL: + $public_key = common_config('mollom', 'public_key'); + // Retrieve the list of Mollom servers from the database: + $servers = common_config('mollom', 'servers'); + + if ($servers == NULL) { + // Retrieve a list of valid Mollom servers from mollom.com: + $servers = $this->xmlrpc('http://xmlrpc.mollom.com/'. MOLLOM_API_VERSION, 'mollom.getServerList', $this->authentication()); + + // Store the list of servers in the database: + // TODO! variable_set('mollom_servers', $servers); + } + + if (is_array($servers)) { + // Send the request to the first server, if that fails, try the other servers in the list: + foreach ($servers as $server) { + $auth = $this->authentication(); + $data = array_merge($data, $auth); + $result = $this->xmlrpc($server .'/'. MOLLOM_API_VERSION, $method, $data); + + // Debug output: + if (isset($data['session_id'])) { + error_log("called $method at server $server with session ID '". $data['session_id'] ."'"); + } + else { + error_log("called $method at server $server with no session ID"); + } + + if ($errno = $this->xmlrpc_errno()) { + error_log(sprintf('Error @errno: %s - %s - %s -
%s
', $this->xmlrpc_errno(), $server, $this->xmlrpc_error_msg(), $method, print_r($data, TRUE))); + + if ($errno == MOLLOM_REFRESH) { + // Retrieve a list of valid Mollom servers from mollom.com: + $servers = $this->xmlrpc('http://xmlrpc.mollom.com/'. MOLLOM_API_VERSION, 'mollom.getServerList', $this->authentication()); + + // Store the updated list of servers in the database: + //tODO variable_set('mollom_servers', $servers); + } + else if ($errno == MOLLOM_ERROR) { + return $result; + } + else if ($errno == MOLLOM_REDIRECT) { + // Do nothing, we select the next client automatically. + } + + // Reset the XMLRPC error: + $this->xmlrpc_error(0); // FIXME: this is crazy. + } + else { + error_log("Result = " . print_r($result, TRUE)); + return $result; + } + } + } + + // If none of the servers worked, activate the fallback mechanism: + error_log("none of the servers worked"); + // _mollom_fallback(); + + // If everything failed, we reset the server list to force Mollom to request a new list: + //TODO variable_set('mollom_servers', array()); + } + + /** + * This function generate an array with all the information required to + * authenticate against Mollom. To prevent that requests are forged and + * that you are impersonated, each request is signed with a hash computed + * based on a private key and a timestamp. + * + * Both the client and the server share the secret key that is used to + * create the authentication hash based on a timestamp. They both hash + * the timestamp with the secret key, and if the hashes match, the + * authenticity of the message has been validated. + * + * To avoid that someone can intercept a (hash, timestamp)-pair and + * use that to impersonate a client, Mollom will reject the request + * when the timestamp is more than 15 minutes off. + * + * Make sure your server's time is synchronized with the world clocks, + * and that you don't share your private key with anyone else. + */ + private function authentication() { + + $public_key = common_config('mollom', 'public_key'); + $private_key = common_config('mollom', 'private_key'); + + // Generate a timestamp according to the dateTime format (http://www.w3.org/TR/xmlschema-2/#dateTime): + $time = gmdate("Y-m-d\TH:i:s.\\0\\0\\0O", time()); + + // Calculate a HMAC-SHA1 according to RFC2104 (http://www.ietf.org/rfc/rfc2104.txt): + $hash = base64_encode( + pack("H*", sha1((str_pad($private_key, 64, chr(0x00)) ^ (str_repeat(chr(0x5c), 64))) . + pack("H*", sha1((str_pad($private_key, 64, chr(0x00)) ^ (str_repeat(chr(0x36), 64))) . + $time)))) + ); + + // Store everything in an array. Elsewhere in the code, we'll add the + // acutal data before we pass it onto the XML-RPC library: + $data['public_key'] = $public_key; + $data['time'] = $time; + $data['hash'] = $hash; + + return $data; + } + + + function xmlrpc($url) { + //require_once './includes/xmlrpc.inc'; + $args = func_get_args(); + return call_user_func_array(array('MollomPlugin', '_xmlrpc'), $args); + } + + /** + * Recursively turn a data structure into objects with 'data' and 'type' attributes. + * + * @param $data + * The data structure. + * @param $type + * Optional type assign to $data. + * @return + * Object. + */ + function xmlrpc_value($data, $type = FALSE) { + $xmlrpc_value = new stdClass(); + $xmlrpc_value->data = $data; + if (!$type) { + $type = $this->xmlrpc_value_calculate_type($xmlrpc_value); + } + $xmlrpc_value->type = $type; + if ($type == 'struct') { + // Turn all the values in the array into new xmlrpc_values + foreach ($xmlrpc_value->data as $key => $value) { + $xmlrpc_value->data[$key] = $this->xmlrpc_value($value); + } + } + if ($type == 'array') { + for ($i = 0, $j = count($xmlrpc_value->data); $i < $j; $i++) { + $xmlrpc_value->data[$i] = $this->xmlrpc_value($xmlrpc_value->data[$i]); + } + } + return $xmlrpc_value; + } + + /** + * Map PHP type to XML-RPC type. + * + * @param $xmlrpc_value + * Variable whose type should be mapped. + * @return + * XML-RPC type as string. + * @see + * http://www.xmlrpc.com/spec#scalars + */ + function xmlrpc_value_calculate_type(&$xmlrpc_value) { + // http://www.php.net/gettype: Never use gettype() to test for a certain type [...] Instead, use the is_* functions. + if (is_bool($xmlrpc_value->data)) { + return 'boolean'; + } + if (is_double($xmlrpc_value->data)) { + return 'double'; + } + if (is_int($xmlrpc_value->data)) { + return 'int'; + } + if (is_array($xmlrpc_value->data)) { + // empty or integer-indexed arrays are 'array', string-indexed arrays 'struct' + return empty($xmlrpc_value->data) || range(0, count($xmlrpc_value->data) - 1) === array_keys($xmlrpc_value->data) ? 'array' : 'struct'; + } + if (is_object($xmlrpc_value->data)) { + if ($xmlrpc_value->data->is_date) { + return 'date'; + } + if ($xmlrpc_value->data->is_base64) { + return 'base64'; + } + $xmlrpc_value->data = get_object_vars($xmlrpc_value->data); + return 'struct'; + } + // default + return 'string'; + } + +/** + * Generate XML representing the given value. + * + * @param $xmlrpc_value + * @return + * XML representation of value. + */ +function xmlrpc_value_get_xml($xmlrpc_value) { + switch ($xmlrpc_value->type) { + case 'boolean': + return ''. (($xmlrpc_value->data) ? '1' : '0') .''; + break; + case 'int': + return ''. $xmlrpc_value->data .''; + break; + case 'double': + return ''. $xmlrpc_value->data .''; + break; + case 'string': + // Note: we don't escape apostrophes because of the many blogging clients + // that don't support numerical entities (and XML in general) properly. + return ''. htmlspecialchars($xmlrpc_value->data) .''; + break; + case 'array': + $return = ''."\n"; + foreach ($xmlrpc_value->data as $item) { + $return .= ' '. $this->xmlrpc_value_get_xml($item) ."\n"; + } + $return .= ''; + return $return; + break; + case 'struct': + $return = ''."\n"; + foreach ($xmlrpc_value->data as $name => $value) { + $return .= " ". htmlentities($name) .""; + $return .= $this->xmlrpc_value_get_xml($value) ."\n"; + } + $return .= ''; + return $return; + break; + case 'date': + return $this->xmlrpc_date_get_xml($xmlrpc_value->data); + break; + case 'base64': + return $this->xmlrpc_base64_get_xml($xmlrpc_value->data); + break; + } + return FALSE; +} + + /** + * Perform an HTTP request. + * + * This is a flexible and powerful HTTP client implementation. Correctly handles + * GET, POST, PUT or any other HTTP requests. Handles redirects. + * + * @param $url + * A string containing a fully qualified URI. + * @param $headers + * An array containing an HTTP header => value pair. + * @param $method + * A string defining the HTTP request to use. + * @param $data + * A string containing data to include in the request. + * @param $retry + * An integer representing how many times to retry the request in case of a + * redirect. + * @return + * An object containing the HTTP request headers, response code, headers, + * data and redirect status. + */ + function http_request($url, $headers = array(), $method = 'GET', $data = NULL, $retry = 3) { + global $db_prefix; + + $result = new stdClass(); + + // Parse the URL and make sure we can handle the schema. + $uri = parse_url($url); + + if ($uri == FALSE) { + $result->error = 'unable to parse URL'; + return $result; + } + + if (!isset($uri['scheme'])) { + $result->error = 'missing schema'; + return $result; + } + + switch ($uri['scheme']) { + case 'http': + $port = isset($uri['port']) ? $uri['port'] : 80; + $host = $uri['host'] . ($port != 80 ? ':'. $port : ''); + $fp = @fsockopen($uri['host'], $port, $errno, $errstr, 15); + break; + case 'https': + // Note: Only works for PHP 4.3 compiled with OpenSSL. + $port = isset($uri['port']) ? $uri['port'] : 443; + $host = $uri['host'] . ($port != 443 ? ':'. $port : ''); + $fp = @fsockopen('ssl://'. $uri['host'], $port, $errno, $errstr, 20); + break; + default: + $result->error = 'invalid schema '. $uri['scheme']; + return $result; + } + + // Make sure the socket opened properly. + if (!$fp) { + // When a network error occurs, we use a negative number so it does not + // clash with the HTTP status codes. + $result->code = -$errno; + $result->error = trim($errstr); + + // Mark that this request failed. This will trigger a check of the web + // server's ability to make outgoing HTTP requests the next time that + // requirements checking is performed. + // @see system_requirements() + //TODO variable_set('drupal_http_request_fails', TRUE); + + return $result; + } + + // Construct the path to act on. + $path = isset($uri['path']) ? $uri['path'] : '/'; + if (isset($uri['query'])) { + $path .= '?'. $uri['query']; + } + + // Create HTTP request. + $defaults = array( + // RFC 2616: "non-standard ports MUST, default ports MAY be included". + // We don't add the port to prevent from breaking rewrite rules checking the + // host that do not take into account the port number. + 'Host' => "Host: $host", + 'User-Agent' => 'User-Agent: Drupal (+http://drupal.org/)', + 'Content-Length' => 'Content-Length: '. strlen($data) + ); + + // If the server url has a user then attempt to use basic authentication + if (isset($uri['user'])) { + $defaults['Authorization'] = 'Authorization: Basic '. base64_encode($uri['user'] . (!empty($uri['pass']) ? ":". $uri['pass'] : '')); + } + + // If the database prefix is being used by SimpleTest to run the tests in a copied + // database then set the user-agent header to the database prefix so that any + // calls to other Drupal pages will run the SimpleTest prefixed database. The + // user-agent is used to ensure that multiple testing sessions running at the + // same time won't interfere with each other as they would if the database + // prefix were stored statically in a file or database variable. + if (is_string($db_prefix) && preg_match("/^simpletest\d+$/", $db_prefix, $matches)) { + $defaults['User-Agent'] = 'User-Agent: ' . $matches[0]; + } + + foreach ($headers as $header => $value) { + $defaults[$header] = $header .': '. $value; + } + + $request = $method .' '. $path ." HTTP/1.0\r\n"; + $request .= implode("\r\n", $defaults); + $request .= "\r\n\r\n"; + $request .= $data; + + $result->request = $request; + + fwrite($fp, $request); + + // Fetch response. + $response = ''; + while (!feof($fp) && $chunk = fread($fp, 1024)) { + $response .= $chunk; + } + fclose($fp); + + // Parse response. + list($split, $result->data) = explode("\r\n\r\n", $response, 2); + $split = preg_split("/\r\n|\n|\r/", $split); + + list($protocol, $code, $text) = explode(' ', trim(array_shift($split)), 3); + $result->headers = array(); + + // Parse headers. + while ($line = trim(array_shift($split))) { + list($header, $value) = explode(':', $line, 2); + if (isset($result->headers[$header]) && $header == 'Set-Cookie') { + // RFC 2109: the Set-Cookie response header comprises the token Set- + // Cookie:, followed by a comma-separated list of one or more cookies. + $result->headers[$header] .= ','. trim($value); + } + else { + $result->headers[$header] = trim($value); + } + } + + $responses = array( + 100 => 'Continue', 101 => 'Switching Protocols', + 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', + 300 => 'Multiple Choices', 301 => 'Moved Permanently', 302 => 'Found', 303 => 'See Other', 304 => 'Not Modified', 305 => 'Use Proxy', 307 => 'Temporary Redirect', + 400 => 'Bad Request', 401 => 'Unauthorized', 402 => 'Payment Required', 403 => 'Forbidden', 404 => 'Not Found', 405 => 'Method Not Allowed', 406 => 'Not Acceptable', 407 => 'Proxy Authentication Required', 408 => 'Request Time-out', 409 => 'Conflict', 410 => 'Gone', 411 => 'Length Required', 412 => 'Precondition Failed', 413 => 'Request Entity Too Large', 414 => 'Request-URI Too Large', 415 => 'Unsupported Media Type', 416 => 'Requested range not satisfiable', 417 => 'Expectation Failed', + 500 => 'Internal Server Error', 501 => 'Not Implemented', 502 => 'Bad Gateway', 503 => 'Service Unavailable', 504 => 'Gateway Time-out', 505 => 'HTTP Version not supported' + ); + // RFC 2616 states that all unknown HTTP codes must be treated the same as the + // base code in their class. + if (!isset($responses[$code])) { + $code = floor($code / 100) * 100; + } + + switch ($code) { + case 200: // OK + case 304: // Not modified + break; + case 301: // Moved permanently + case 302: // Moved temporarily + case 307: // Moved temporarily + $location = $result->headers['Location']; + + if ($retry) { + $result = drupal_http_request($result->headers['Location'], $headers, $method, $data, --$retry); + $result->redirect_code = $result->code; + } + $result->redirect_url = $location; + + break; + default: + $result->error = $text; + } + + $result->code = $code; + return $result; + } + + /** + * Construct an object representing an XML-RPC message. + * + * @param $message + * String containing XML as defined at http://www.xmlrpc.com/spec + * @return + * Object + */ + function xmlrpc_message($message) { + $xmlrpc_message = new stdClass(); + $xmlrpc_message->array_structs = array(); // The stack used to keep track of the current array/struct + $xmlrpc_message->array_structs_types = array(); // The stack used to keep track of if things are structs or array + $xmlrpc_message->current_struct_name = array(); // A stack as well + $xmlrpc_message->message = $message; + return $xmlrpc_message; + } + + /** + * Parse an XML-RPC message. If parsing fails, the faultCode and faultString + * will be added to the message object. + * + * @param $xmlrpc_message + * Object generated by xmlrpc_message() + * @return + * TRUE if parsing succeeded; FALSE otherwise + */ + function xmlrpc_message_parse(&$xmlrpc_message) { + // First remove the XML declaration + $xmlrpc_message->message = preg_replace('/<\?xml(.*)?\?'.'>/', '', $xmlrpc_message->message); + if (trim($xmlrpc_message->message) == '') { + return FALSE; + } + $xmlrpc_message->_parser = xml_parser_create(); + // Set XML parser to take the case of tags into account. + xml_parser_set_option($xmlrpc_message->_parser, XML_OPTION_CASE_FOLDING, FALSE); + // Set XML parser callback functions + xml_set_element_handler($xmlrpc_message->_parser, array('MollomPlugin', 'xmlrpc_message_tag_open'), array('MollomPlugin', 'xmlrpc_message_tag_close')); + xml_set_character_data_handler($xmlrpc_message->_parser, array('MollomPlugin', 'xmlrpc_message_cdata')); + $this->xmlrpc_message_set($xmlrpc_message); + if (!xml_parse($xmlrpc_message->_parser, $xmlrpc_message->message)) { + return FALSE; + } + xml_parser_free($xmlrpc_message->_parser); + // Grab the error messages, if any + $xmlrpc_message = $this->xmlrpc_message_get(); + if ($xmlrpc_message->messagetype == 'fault') { + $xmlrpc_message->fault_code = $xmlrpc_message->params[0]['faultCode']; + $xmlrpc_message->fault_string = $xmlrpc_message->params[0]['faultString']; + } + return TRUE; + } + + /** + * Store a copy of the $xmlrpc_message object temporarily. + * + * @param $value + * Object + * @return + * The most recently stored $xmlrpc_message + */ + function xmlrpc_message_set($value = NULL) { + static $xmlrpc_message; + if ($value) { + $xmlrpc_message = $value; + } + return $xmlrpc_message; + } + + function xmlrpc_message_get() { + return $this->xmlrpc_message_set(); + } + + function xmlrpc_message_tag_open($parser, $tag, $attr) { + $xmlrpc_message = $this->xmlrpc_message_get(); + $xmlrpc_message->current_tag_contents = ''; + $xmlrpc_message->last_open = $tag; + switch ($tag) { + case 'methodCall': + case 'methodResponse': + case 'fault': + $xmlrpc_message->messagetype = $tag; + break; + // Deal with stacks of arrays and structs + case 'data': + $xmlrpc_message->array_structs_types[] = 'array'; + $xmlrpc_message->array_structs[] = array(); + break; + case 'struct': + $xmlrpc_message->array_structs_types[] = 'struct'; + $xmlrpc_message->array_structs[] = array(); + break; + } + $this->xmlrpc_message_set($xmlrpc_message); + } + + function xmlrpc_message_cdata($parser, $cdata) { + $xmlrpc_message = $this->xmlrpc_message_get(); + $xmlrpc_message->current_tag_contents .= $cdata; + $this->xmlrpc_message_set($xmlrpc_message); + } + + function xmlrpc_message_tag_close($parser, $tag) { + $xmlrpc_message = $this->xmlrpc_message_get(); + $value_flag = FALSE; + switch ($tag) { + case 'int': + case 'i4': + $value = (int)trim($xmlrpc_message->current_tag_contents); + $value_flag = TRUE; + break; + case 'double': + $value = (double)trim($xmlrpc_message->current_tag_contents); + $value_flag = TRUE; + break; + case 'string': + $value = $xmlrpc_message->current_tag_contents; + $value_flag = TRUE; + break; + case 'dateTime.iso8601': + $value = xmlrpc_date(trim($xmlrpc_message->current_tag_contents)); + // $value = $iso->getTimestamp(); + $value_flag = TRUE; + break; + case 'value': + // If no type is indicated, the type is string + // We take special care for empty values + if (trim($xmlrpc_message->current_tag_contents) != '' || (isset($xmlrpc_message->last_open) && ($xmlrpc_message->last_open == 'value'))) { + $value = (string)$xmlrpc_message->current_tag_contents; + $value_flag = TRUE; + } + unset($xmlrpc_message->last_open); + break; + case 'boolean': + $value = (boolean)trim($xmlrpc_message->current_tag_contents); + $value_flag = TRUE; + break; + case 'base64': + $value = base64_decode(trim($xmlrpc_message->current_tag_contents)); + $value_flag = TRUE; + break; + // Deal with stacks of arrays and structs + case 'data': + case 'struct': + $value = array_pop($xmlrpc_message->array_structs ); + array_pop($xmlrpc_message->array_structs_types); + $value_flag = TRUE; + break; + case 'member': + array_pop($xmlrpc_message->current_struct_name); + break; + case 'name': + $xmlrpc_message->current_struct_name[] = trim($xmlrpc_message->current_tag_contents); + break; + case 'methodName': + $xmlrpc_message->methodname = trim($xmlrpc_message->current_tag_contents); + break; + } + if ($value_flag) { + if (count($xmlrpc_message->array_structs ) > 0) { + // Add value to struct or array + if ($xmlrpc_message->array_structs_types[count($xmlrpc_message->array_structs_types)-1] == 'struct') { + // Add to struct + $xmlrpc_message->array_structs [count($xmlrpc_message->array_structs )-1][$xmlrpc_message->current_struct_name[count($xmlrpc_message->current_struct_name)-1]] = $value; + } + else { + // Add to array + $xmlrpc_message->array_structs [count($xmlrpc_message->array_structs )-1][] = $value; + } + } + else { + // Just add as a parameter + $xmlrpc_message->params[] = $value; + } + } + if (!in_array($tag, array("data", "struct", "member"))) { + $xmlrpc_message->current_tag_contents = ''; + } + $this->xmlrpc_message_set($xmlrpc_message); + } + + /** + * Construct an object representing an XML-RPC request + * + * @param $method + * The name of the method to be called + * @param $args + * An array of parameters to send with the method. + * @return + * Object + */ + function xmlrpc_request($method, $args) { + $xmlrpc_request = new stdClass(); + $xmlrpc_request->method = $method; + $xmlrpc_request->args = $args; + $xmlrpc_request->xml = << + + {$xmlrpc_request->method} + + +EOD; + foreach ($xmlrpc_request->args as $arg) { + $xmlrpc_request->xml .= ''; + $v = $this->xmlrpc_value($arg); + $xmlrpc_request->xml .= $this->xmlrpc_value_get_xml($v); + $xmlrpc_request->xml .= "\n"; + } + $xmlrpc_request->xml .= ''; + return $xmlrpc_request; + } + + + function xmlrpc_error($code = NULL, $message = NULL, $reset = FALSE) { + static $xmlrpc_error; + if (isset($code)) { + $xmlrpc_error = new stdClass(); + $xmlrpc_error->is_error = TRUE; + $xmlrpc_error->code = $code; + $xmlrpc_error->message = $message; + } + elseif ($reset) { + $xmlrpc_error = NULL; + } + return $xmlrpc_error; + } + + function xmlrpc_error_get_xml($xmlrpc_error) { + return << + + + + + faultCode + {$xmlrpc_error->code} + + + faultString + {$xmlrpc_error->message} + + + + + + +EOD; + } + + function xmlrpc_date($time) { + $xmlrpc_date = new stdClass(); + $xmlrpc_date->is_date = TRUE; + // $time can be a PHP timestamp or an ISO one + if (is_numeric($time)) { + $xmlrpc_date->year = gmdate('Y', $time); + $xmlrpc_date->month = gmdate('m', $time); + $xmlrpc_date->day = gmdate('d', $time); + $xmlrpc_date->hour = gmdate('H', $time); + $xmlrpc_date->minute = gmdate('i', $time); + $xmlrpc_date->second = gmdate('s', $time); + $xmlrpc_date->iso8601 = gmdate('Ymd\TH:i:s', $time); + } + else { + $xmlrpc_date->iso8601 = $time; + $time = str_replace(array('-', ':'), '', $time); + $xmlrpc_date->year = substr($time, 0, 4); + $xmlrpc_date->month = substr($time, 4, 2); + $xmlrpc_date->day = substr($time, 6, 2); + $xmlrpc_date->hour = substr($time, 9, 2); + $xmlrpc_date->minute = substr($time, 11, 2); + $xmlrpc_date->second = substr($time, 13, 2); + } + return $xmlrpc_date; + } + + function xmlrpc_date_get_xml($xmlrpc_date) { + return ''. $xmlrpc_date->year . $xmlrpc_date->month . $xmlrpc_date->day .'T'. $xmlrpc_date->hour .':'. $xmlrpc_date->minute .':'. $xmlrpc_date->second .''; + } + + function xmlrpc_base64($data) { + $xmlrpc_base64 = new stdClass(); + $xmlrpc_base64->is_base64 = TRUE; + $xmlrpc_base64->data = $data; + return $xmlrpc_base64; + } + + function xmlrpc_base64_get_xml($xmlrpc_base64) { + return ''. base64_encode($xmlrpc_base64->data) .''; + } + + /** + * Execute an XML remote procedural call. This is private function; call xmlrpc() + * in common.inc instead of this function. + * + * @return + * A $xmlrpc_message object if the call succeeded; FALSE if the call failed + */ + function _xmlrpc() { + $args = func_get_args(); + $url = array_shift($args); + $this->xmlrpc_clear_error(); + if (is_array($args[0])) { + $method = 'system.multicall'; + $multicall_args = array(); + foreach ($args[0] as $call) { + $multicall_args[] = array('methodName' => array_shift($call), 'params' => $call); + } + $args = array($multicall_args); + } + else { + $method = array_shift($args); + } + $xmlrpc_request = $this->xmlrpc_request($method, $args); + $result = $this->http_request($url, array("Content-Type" => "text/xml"), 'POST', $xmlrpc_request->xml); + if ($result->code != 200) { + $this->xmlrpc_error($result->code, $result->error); + return FALSE; + } + $message = $this->xmlrpc_message($result->data); + // Now parse what we've got back + if (!$this->xmlrpc_message_parse($message)) { + // XML error + $this->xmlrpc_error(-32700, t('Parse error. Not well formed')); + return FALSE; + } + // Is the message a fault? + if ($message->messagetype == 'fault') { + $this->xmlrpc_error($message->fault_code, $message->fault_string); + return FALSE; + } + // Message must be OK + return $message->params[0]; + } + + /** + * Returns the last XML-RPC client error number + */ + function xmlrpc_errno() { + $error = $this->xmlrpc_error(); + return ($error != NULL ? $error->code : NULL); + } + + /** + * Returns the last XML-RPC client error message + */ + function xmlrpc_error_msg() { + $error = xmlrpc_error(); + return ($error != NULL ? $error->message : NULL); + } + + /** + * Clears any previous error. + */ + function xmlrpc_clear_error() { + $this->xmlrpc_error(NULL, NULL, TRUE); + } + +} diff --git a/plugins/Mollom/README b/plugins/Mollom/README new file mode 100644 index 000000000..210e9000b --- /dev/null +++ b/plugins/Mollom/README @@ -0,0 +1,18 @@ +== Dependencies == +Your webserver needs to have xmlrpc php extention loaded. +This is called php5-xmlrpc in Debian/Ubuntu + +== Installation == +Add the following to your config.php + + +replace '...' with your own public and private keys for your site, which you can get from mollom.com + +If you're using this plugin, i'd love to know about it -- shiny@cpan.org or shiny on freenode. -- cgit v1.2.3-54-g00ecf From 76cc791642020084202ef261b3278eb99cf94ec7 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 00:09:07 -0500 Subject: Use common_{log,debug} instead of error_log for logging --- plugins/Mollom/MollomPlugin.php | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/Mollom/MollomPlugin.php b/plugins/Mollom/MollomPlugin.php index c1ac3d132..f89910ae5 100644 --- a/plugins/Mollom/MollomPlugin.php +++ b/plugins/Mollom/MollomPlugin.php @@ -75,7 +75,6 @@ class MollomPlugin extends Plugin function onStartNoticeSave($notice) { - error_log(print_r($notice, 1)); if (common_config('mollom', 'public_key')) { //Check spam $data = array( @@ -145,14 +144,14 @@ class MollomPlugin extends Plugin // Debug output: if (isset($data['session_id'])) { - error_log("called $method at server $server with session ID '". $data['session_id'] ."'"); + common_debug("called $method at server $server with session ID '". $data['session_id'] ."'"); } else { - error_log("called $method at server $server with no session ID"); + common_debug("called $method at server $server with no session ID"); } if ($errno = $this->xmlrpc_errno()) { - error_log(sprintf('Error @errno: %s - %s - %s -
%s
', $this->xmlrpc_errno(), $server, $this->xmlrpc_error_msg(), $method, print_r($data, TRUE))); + common_log(LOG_ERR, sprintf('Error @errno: %s - %s - %s -
%s
', $this->xmlrpc_errno(), $server, $this->xmlrpc_error_msg(), $method, print_r($data, TRUE))); if ($errno == MOLLOM_REFRESH) { // Retrieve a list of valid Mollom servers from mollom.com: @@ -172,14 +171,14 @@ class MollomPlugin extends Plugin $this->xmlrpc_error(0); // FIXME: this is crazy. } else { - error_log("Result = " . print_r($result, TRUE)); + common_debug("Result = " . print_r($result, TRUE)); return $result; } } } // If none of the servers worked, activate the fallback mechanism: - error_log("none of the servers worked"); + common_debug("none of the servers worked"); // _mollom_fallback(); // If everything failed, we reset the server list to force Mollom to request a new list: -- cgit v1.2.3-54-g00ecf From 3b5299b5ca327bab1013e23b6284ce92bea6db04 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 00:20:15 -0500 Subject: Use plugin configuration instead of common_config() --- plugins/Mollom/MollomPlugin.php | 16 ++++++++-------- plugins/Mollom/README | 14 +++++++++----- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/plugins/Mollom/MollomPlugin.php b/plugins/Mollom/MollomPlugin.php index f89910ae5..4c82c481a 100644 --- a/plugins/Mollom/MollomPlugin.php +++ b/plugins/Mollom/MollomPlugin.php @@ -69,13 +69,13 @@ define('MOLLOM_REDIRECT', 1200); class MollomPlugin extends Plugin { - function __construct($url=null) { - parent::__construct(); - } + public $public_key; + public $private_key; + public $servers; function onStartNoticeSave($notice) { - if (common_config('mollom', 'public_key')) { + if ( $this->public_key ) { //Check spam $data = array( 'post_body' => $notice->content, @@ -123,9 +123,9 @@ class MollomPlugin extends Plugin } // Construct the server URL: - $public_key = common_config('mollom', 'public_key'); + $public_key = $this->public_key; // Retrieve the list of Mollom servers from the database: - $servers = common_config('mollom', 'servers'); + $servers = $this->servers; if ($servers == NULL) { // Retrieve a list of valid Mollom servers from mollom.com: @@ -205,8 +205,8 @@ class MollomPlugin extends Plugin */ private function authentication() { - $public_key = common_config('mollom', 'public_key'); - $private_key = common_config('mollom', 'private_key'); + $public_key = $this->public_key; + $private_key = $this->private_key; // Generate a timestamp according to the dateTime format (http://www.w3.org/TR/xmlschema-2/#dateTime): $time = gmdate("Y-m-d\TH:i:s.\\0\\0\\0O", time()); diff --git a/plugins/Mollom/README b/plugins/Mollom/README index 210e9000b..2b8c2d8a0 100644 --- a/plugins/Mollom/README +++ b/plugins/Mollom/README @@ -1,3 +1,5 @@ +The mollom plugin uses mollom.com to filter SN notices for spam. + == Dependencies == Your webserver needs to have xmlrpc php extention loaded. This is called php5-xmlrpc in Debian/Ubuntu @@ -5,11 +7,13 @@ This is called php5-xmlrpc in Debian/Ubuntu == Installation == Add the following to your config.php '...', + 'private_key' => '...', + 'servers' => array('http://88.151.243.81', 'http://82.103.131.136') + ) +); ?> -- cgit v1.2.3-54-g00ecf From 0f6ccee6d3a10282748c84b3d50d46b31ba2edec Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 00:22:19 -0500 Subject: remove invalid calls to AuthenticationPlugin::onAutoload --- plugins/CasAuthentication/CasAuthenticationPlugin.php | 2 -- plugins/LdapAuthentication/LdapAuthenticationPlugin.php | 2 -- 2 files changed, 4 deletions(-) diff --git a/plugins/CasAuthentication/CasAuthenticationPlugin.php b/plugins/CasAuthentication/CasAuthenticationPlugin.php index 26f21af16..818a11f77 100644 --- a/plugins/CasAuthentication/CasAuthenticationPlugin.php +++ b/plugins/CasAuthentication/CasAuthenticationPlugin.php @@ -57,8 +57,6 @@ class CasAuthenticationPlugin extends AuthenticationPlugin case 'CasloginAction': require_once(INSTALLDIR.'/plugins/CasAuthentication/' . strtolower(mb_substr($cls, 0, -6)) . '.php'); return false; - default: - return parent::onAutoload($cls); } } diff --git a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php index af42be761..c14fa21a9 100644 --- a/plugins/LdapAuthentication/LdapAuthenticationPlugin.php +++ b/plugins/LdapAuthentication/LdapAuthenticationPlugin.php @@ -74,8 +74,6 @@ class LdapAuthenticationPlugin extends AuthenticationPlugin case 'MemcacheSchemaCache': require_once(INSTALLDIR.'/plugins/LdapAuthentication/MemcacheSchemaCache.php'); return false; - default: - return parent::onAutoload($cls); } } -- cgit v1.2.3-54-g00ecf From 35d4587172955950957e017101c660976cfe68f9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Tue, 5 Jan 2010 19:48:43 -1000 Subject: encache on insert instead of decaching --- classes/Memcached_DataObject.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index c31b2a546..d11bd6368 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -142,8 +142,8 @@ class Memcached_DataObject extends DB_DataObject function insert() { - $this->decache(); // in case of cached negative lookups $result = parent::insert(); + $this->encache(); // in case of cached negative lookups return $result; } -- cgit v1.2.3-54-g00ecf From 07f71a66f5372c4d799e6656433726c0c7a19c48 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 11 Sep 2009 21:28:22 +0000 Subject: Extremely nascent RSSCloud plugin --- plugins/RSSCloud/RSSCloudPlugin.php | 169 ++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 plugins/RSSCloud/RSSCloudPlugin.php diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php new file mode 100644 index 000000000..816046ffb --- /dev/null +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -0,0 +1,169 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +define('RSSCLOUDPLUGIN_VERSION', '0.1'); + +class RSSCloudPlugin extends Plugin +{ + function __construct() + { + parent::__construct(); + } + + function onInitializePlugin(){ + $this->domain = common_config('rsscloud', 'domain'); + $this->port = common_config('rsscloud', 'port'); + $this->path = common_config('rsscloud', 'path'); + $this->funct = common_config('rsscloud', 'function'); + $this->protocol = common_config('rsscloud', 'protocol'); + + // set defaults + + if (empty($this->domain)) { + $this->domain = 'rpc.rsscloud.org'; + } + + if (empty($this->port)) { + $this->port = '5337'; + } + + if (empty($this->path)) { + $this->path = '/rsscloud/pleaseNotify'; + } + + if (empty($this->funct)) { + $this->funct = ''; + } + + if (empty($this->protocol)) { + $this->protocol = 'http-post'; + } + } + + function onStartApiRss($action){ + + $attrs = array('domain' => $this->domain, + 'port' => $this->port, + 'path' => $this->path, + 'registerProcedure' => $this->funct, + 'protocol' => $this->protocol); + + // Dipping into XMLWriter to avoid a full end element (). + + $action->xw->startElement('cloud'); + foreach ($attrs as $name => $value) { + $action->xw->writeAttribute($name, $value); + } + $action->xw->endElement('cloud'); + + } + + function onEndNoticeSave($notice){ + + $user = User::staticGet('id', $notice->profile_id); + $rss = common_local_url('api', array('apiaction' => 'statuses', + 'method' => 'user_timeline', + 'argument' => $user->nickname . '.rss')); + + $notifier = new CloudNotifier(); + $notifier->notify($rss); + } + + +} + + +class CloudNotifier { + + + function notify($feed) { + common_debug("CloudNotifier->notify: $feed"); + + $params = 'url=' . urlencode($feed); + + $result = $this->httpPost('http://rpc.rsscloud.org:5337/rsscloud/ping', + $params); + + if ($result) { + common_debug('success notifying cloud'); + } else { + common_debug('failure notifying cloud'); + } + + } + + function userAgent() + { + return 'rssCloudPlugin/' . RSSCLOUDPLUGIN_VERSION . + ' StatusNet/' . STATUSNET_VERSION; + } + + + private function httpPost($url, $params) { + + + common_debug('params: ' . var_export($params, true)); + + $options = array(CURLOPT_URL => $url, + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => $params, + CURLOPT_USERAGENT => $this->userAgent(), + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FAILONERROR => true, + CURLOPT_HEADER => false, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_CONNECTTIMEOUT => 5, + CURLOPT_TIMEOUT => 5); + + $ch = curl_init(); + curl_setopt_array($ch, $options); + + $response = curl_exec($ch); + + + + $info = curl_getinfo($ch); + + curl_close($ch); + + common_debug('curl response: ' . var_export($response, true)); + common_debug('curl info: ' . var_export($info, true)); + + if ($info['http_code'] == 200) { + return true; + } else { + return false; + } + } + +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 4e033138b31ffbc9a0f7d75d8bea7518de617b6c Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 14 Sep 2009 01:39:54 +0000 Subject: Test action to simulate an aggregator. Useful for checking that the cloud hub is sending notifications. --- plugins/RSSCloud/LoggingAggregator.php | 85 ++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 plugins/RSSCloud/LoggingAggregator.php diff --git a/plugins/RSSCloud/LoggingAggregator.php b/plugins/RSSCloud/LoggingAggregator.php new file mode 100644 index 000000000..2573d9343 --- /dev/null +++ b/plugins/RSSCloud/LoggingAggregator.php @@ -0,0 +1,85 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class LoggingAggregatorAction extends Action +{ + + /** + * Initialization. + * + * @param array $args Web and URL arguments + * + * @return boolean false if user doesn't exist + */ + function prepare($args) + { + parent::prepare($args); + return true; + } + + function handle($args) + { + parent::handle($args); + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + $this->showError('This resource requires an HTTP POST.'); + } + + $this->url = $this->arg('url'); + + if (empty($this->url)) { + $this->showError('Hey, you have to provide a url parameter.'); + } + + $this->ip = $_SERVER['REMOTE_ADDR']; + + common_log(LOG_INFO, 'RSSCloud Logging Aggregator - ' . $this->ip . ' claims the feed at ' . + $this->url . ' has been updated.'); + + header('Content-Type: text/xml'); + echo '' . "\n"; + + } + + function showError($msg) + { + header('HTTP/1.1 403 Forbidden'); + header('Content-Type: text/xml'); + echo "\n"; + echo "\n"; + exit(); + } + +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 391003c3c65572dd156244390d8eedd2dfd96f90 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 16 Sep 2009 19:20:25 +0000 Subject: Some foundational work. Not much to see here. Move along. --- plugins/RSSCloud/RSSCloudNotifier.php | 93 ++++++++++++++++++ plugins/RSSCloud/RSSCloudPlugin.php | 141 ++++++++++++---------------- plugins/RSSCloud/RSSCloudRequestNotify.php | 145 +++++++++++++++++++++++++++++ 3 files changed, 299 insertions(+), 80 deletions(-) create mode 100644 plugins/RSSCloud/RSSCloudNotifier.php create mode 100644 plugins/RSSCloud/RSSCloudRequestNotify.php diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php new file mode 100644 index 000000000..65bfd032e --- /dev/null +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -0,0 +1,93 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class RSSCloudNotifier { + + function postUpdate($endpoint, $feed) { + common_debug("CloudNotifier->notify: $feed"); + + $params = 'url=' . urlencode($feed); + + $result = $this->httpPost($endpoint, $params); + + if ($result) { + common_debug('success notifying cloud'); + } else { + common_debug('failure notifying cloud'); + } + + } + + function userAgent() + { + return 'rssCloudPlugin/' . RSSCLOUDPLUGIN_VERSION . + ' StatusNet/' . STATUSNET_VERSION; + } + + private function httpPost($url, $params) { + + common_debug('params: ' . var_export($params, true)); + + $options = array(CURLOPT_URL => $url, + CURLOPT_POST => true, + CURLOPT_POSTFIELDS => $params, + CURLOPT_USERAGENT => $this->userAgent(), + CURLOPT_RETURNTRANSFER => true, + CURLOPT_FAILONERROR => true, + CURLOPT_HEADER => false, + CURLOPT_FOLLOWLOCATION => true, + CURLOPT_CONNECTTIMEOUT => 5, + CURLOPT_TIMEOUT => 5); + + $ch = curl_init(); + curl_setopt_array($ch, $options); + + $response = curl_exec($ch); + + $info = curl_getinfo($ch); + + curl_close($ch); + + common_debug('curl response: ' . var_export($response, true)); + common_debug('curl info: ' . var_export($info, true)); + + if ($info['http_code'] == 200) { + return true; + } else { + return false; + } + } + +} + + diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 816046ffb..50d9060ef 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -33,30 +33,33 @@ if (!defined('STATUSNET')) { define('RSSCLOUDPLUGIN_VERSION', '0.1'); -class RSSCloudPlugin extends Plugin +class RSSCloudPlugin extends Plugin { function __construct() { parent::__construct(); } - + function onInitializePlugin(){ + + common_debug("RSSCloudPlugin onInitializePlugin()"); + $this->domain = common_config('rsscloud', 'domain'); $this->port = common_config('rsscloud', 'port'); $this->path = common_config('rsscloud', 'path'); $this->funct = common_config('rsscloud', 'function'); $this->protocol = common_config('rsscloud', 'protocol'); - + // set defaults - + if (empty($this->domain)) { $this->domain = 'rpc.rsscloud.org'; } - + if (empty($this->port)) { $this->port = '5337'; } - + if (empty($this->path)) { $this->path = '/rsscloud/pleaseNotify'; } @@ -69,9 +72,47 @@ class RSSCloudPlugin extends Plugin $this->protocol = 'http-post'; } } - + + /** + * Add RSSCloud-related paths to the router table + * + * Hook for RouterInitialized event. + * + * @return boolean hook return + */ + + function onRouterInitialized(&$m) + { + $m->connect('rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); + $m->connect('rsscloud/notify', array('action' => 'LoggingAggregator')); + + return true; + } + + function onAutoload($cls) + { + common_debug("onAutoload() $cls"); + + switch ($cls) + { + + case 'RSSCloudNotifier': + require_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php'); + return false; + case 'RSSCloudRequestNotifyAction': + case 'LoggingAggregatorAction': + common_debug(mb_substr($cls, 0, -6) . '.php'); + require_once(INSTALLDIR . '/plugins/RSSCloud/' . mb_substr($cls, 0, -6) . '.php'); + return false; + default: + return true; + } + } + function onStartApiRss($action){ - + + // XXX: No sure we want every feed to be cloud enabled + $attrs = array('domain' => $this->domain, 'port' => $this->port, 'path' => $this->path, @@ -79,91 +120,31 @@ class RSSCloudPlugin extends Plugin 'protocol' => $this->protocol); // Dipping into XMLWriter to avoid a full end element (). - + $action->xw->startElement('cloud'); foreach ($attrs as $name => $value) { $action->xw->writeAttribute($name, $value); } $action->xw->endElement('cloud'); - + } function onEndNoticeSave($notice){ + common_debug("RSSCloudPlugin oneEndNoticeSave()"); + $user = User::staticGet('id', $notice->profile_id); - $rss = common_local_url('api', array('apiaction' => 'statuses', + $feed = common_local_url('api', array('apiaction' => 'statuses', 'method' => 'user_timeline', 'argument' => $user->nickname . '.rss')); - - $notifier = new CloudNotifier(); - $notifier->notify($rss); - } - - -} + // XXX: Dave's hub for testing -class CloudNotifier { - - - function notify($feed) { - common_debug("CloudNotifier->notify: $feed"); - - $params = 'url=' . urlencode($feed); - - $result = $this->httpPost('http://rpc.rsscloud.org:5337/rsscloud/ping', - $params); - - if ($result) { - common_debug('success notifying cloud'); - } else { - common_debug('failure notifying cloud'); - } + $endpoint = 'http://rpc.rsscloud.org:5337/rsscloud/ping'; + $notifier = new RSSCloudNotifier(); + $notifier->postUpdate($endpoint, $feed); } - - function userAgent() - { - return 'rssCloudPlugin/' . RSSCLOUDPLUGIN_VERSION . - ' StatusNet/' . STATUSNET_VERSION; - } - - - private function httpPost($url, $params) { - - - common_debug('params: ' . var_export($params, true)); - - $options = array(CURLOPT_URL => $url, - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => $params, - CURLOPT_USERAGENT => $this->userAgent(), - CURLOPT_RETURNTRANSFER => true, - CURLOPT_FAILONERROR => true, - CURLOPT_HEADER => false, - CURLOPT_FOLLOWLOCATION => true, - CURLOPT_CONNECTTIMEOUT => 5, - CURLOPT_TIMEOUT => 5); - - $ch = curl_init(); - curl_setopt_array($ch, $options); - - $response = curl_exec($ch); - - - - $info = curl_getinfo($ch); - - curl_close($ch); - - common_debug('curl response: ' . var_export($response, true)); - common_debug('curl info: ' . var_export($info, true)); - - if ($info['http_code'] == 200) { - return true; - } else { - return false; - } - } - -} \ No newline at end of file + +} + diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php new file mode 100644 index 000000000..1d4087334 --- /dev/null +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -0,0 +1,145 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +class RSSCloudRequestNotifyAction extends Action +{ + + /** + * Initialization. + * + * @param array $args Web and URL arguments + * + * @return boolean false if user doesn't exist + */ + function prepare($args) + { + parent::prepare($args); + return true; + } + + function handle($args) + { + parent::handle($args); + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + showResult(false, 'Request must be POST.'); + } + + $ip = $_SERVER['REMOTE_ADDR']; + $missing = array(); + $port = $this->arg('port'); + + if (empty($this->port)) { + $missing[] = 'port'; + } + + $path = $this->arg('path'); + + if (empty($this->path)) { + $missing[] = 'path'; + } + + $protocol = $this->arg('protocol'); + + if (empty($this->protocol)) { + $missing[] = 'protocol'; + } + + if (empty($this->notifyProcedure)) { + $missing[] = 'notifyProcedure'; + } + + if (!empty($missing)) { + $msg = 'The following parameters were missing from the request body: ' . + implode(',', $missing) . '.'; + $this->showResult(false, $msg); + } + + $feeds = $this->getFeeds(); + + if (empty($feeds)) { + $this->showResult(false, + 'You must provide at least one feed url (url1, url2, url3 ... urlN).'); + } + + $endpoint = $ip . ':' . $port . $path; + + foreach ($feeds as $feed) { + + } + + + } + + + function getFeeds() + { + $feeds = array(); + + foreach ($this->args as $key => $feed ) { + if (preg_match('|url\d+|', $key)) { + + // XXX: validate feeds somehow and kick bad ones out + + $feeds[] = $feed; + } + } + + return $feeds; + } + + + function checkNotifyHandler() + { + + } + + function validateFeed() + { + } + + function showResult($success, $msg) + { + $this->startXML(); + $this->elementStart('notifyResult', array('success' => ($success) ? 'true' : 'false', + 'msg' => $msg)); + $this->endXML(); + + } + + +} + + + -- cgit v1.2.3-54-g00ecf From 51ac7439e1875e7703c7aaeba91d19838b860032 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 21 Sep 2009 00:54:56 -0700 Subject: /rsscloud/request_notify should work now --- plugins/RSSCloud/RSSCloudNotifier.php | 14 +-- plugins/RSSCloud/RSSCloudPlugin.php | 53 ++++---- plugins/RSSCloud/RSSCloudRequestNotify.php | 187 ++++++++++++++++++++++------- 3 files changed, 175 insertions(+), 79 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index 65bfd032e..c2130b7b8 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -2,7 +2,7 @@ /** * StatusNet, the distributed open-source microblogging tool * - * Class to ping an rssCloud hub when a feed has been updated + * Class to ping an rssCloud endpoint when a feed has been updated * * PHP version 5 * @@ -40,12 +40,15 @@ class RSSCloudNotifier { $result = $this->httpPost($endpoint, $params); + // XXX: Make all this use CurlClient (lib/curlclient.php) + if ($result) { - common_debug('success notifying cloud'); + common_debug('RSSCloud plugin - success notifying cloud endpoint!'); } else { - common_debug('failure notifying cloud'); + common_debug('RSSClous plugin - failure notifying cloud endpoint!'); } + return $result; } function userAgent() @@ -56,8 +59,6 @@ class RSSCloudNotifier { private function httpPost($url, $params) { - common_debug('params: ' . var_export($params, true)); - $options = array(CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_POSTFIELDS => $params, @@ -78,9 +79,6 @@ class RSSCloudNotifier { curl_close($ch); - common_debug('curl response: ' . var_export($response, true)); - common_debug('curl info: ' . var_export($info, true)); - if ($info['http_code'] == 200) { return true; } else { diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 50d9060ef..a971c3156 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -40,10 +40,8 @@ class RSSCloudPlugin extends Plugin parent::__construct(); } - function onInitializePlugin(){ - - common_debug("RSSCloudPlugin onInitializePlugin()"); - + function onInitializePlugin() + { $this->domain = common_config('rsscloud', 'domain'); $this->port = common_config('rsscloud', 'port'); $this->path = common_config('rsscloud', 'path'); @@ -52,16 +50,18 @@ class RSSCloudPlugin extends Plugin // set defaults + $local_server = parse_url(common_path('rsscloud/request_notify')); + if (empty($this->domain)) { - $this->domain = 'rpc.rsscloud.org'; + $this->domain = $local_server['host']; } if (empty($this->port)) { - $this->port = '5337'; + $this->port = '80'; } if (empty($this->path)) { - $this->path = '/rsscloud/pleaseNotify'; + $this->path = '/rsscloud/request_notify'; } if (empty($this->funct)) { @@ -84,6 +84,8 @@ class RSSCloudPlugin extends Plugin function onRouterInitialized(&$m) { $m->connect('rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); + + // XXX: This is just for end-to-end testing $m->connect('rsscloud/notify', array('action' => 'LoggingAggregator')); return true; @@ -91,8 +93,6 @@ class RSSCloudPlugin extends Plugin function onAutoload($cls) { - common_debug("onAutoload() $cls"); - switch ($cls) { @@ -111,22 +111,26 @@ class RSSCloudPlugin extends Plugin function onStartApiRss($action){ - // XXX: No sure we want every feed to be cloud enabled + // XXX: we want to only cloud enable the user_timeline so we need + // to be even more specific than this... FIXME - $attrs = array('domain' => $this->domain, - 'port' => $this->port, - 'path' => $this->path, - 'registerProcedure' => $this->funct, - 'protocol' => $this->protocol); + if (get_class($action) == 'TwitapistatusesAction') { - // Dipping into XMLWriter to avoid a full end element (). + $attrs = array('domain' => $this->domain, + 'port' => $this->port, + 'path' => $this->path, + 'registerProcedure' => $this->funct, + 'protocol' => $this->protocol); - $action->xw->startElement('cloud'); - foreach ($attrs as $name => $value) { - $action->xw->writeAttribute($name, $value); - } - $action->xw->endElement('cloud'); + // Dipping into XMLWriter to avoid a full end element (). + + $action->xw->startElement('cloud'); + foreach ($attrs as $name => $value) { + $action->xw->writeAttribute($name, $value); + } + $action->xw->endElement(); + } } function onEndNoticeSave($notice){ @@ -139,11 +143,10 @@ class RSSCloudPlugin extends Plugin 'argument' => $user->nickname . '.rss')); // XXX: Dave's hub for testing + // $endpoint = 'http://rpc.rsscloud.org:5337/rsscloud/ping'; - $endpoint = 'http://rpc.rsscloud.org:5337/rsscloud/ping'; - - $notifier = new RSSCloudNotifier(); - $notifier->postUpdate($endpoint, $feed); + // $notifier = new RSSCloudNotifier(); + // $notifier->postUpdate($endpoint, $feed); } } diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 1d4087334..48bd3fb27 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -1,7 +1,8 @@ ip = $_SERVER['REMOTE_ADDR']; + $this->port = $this->arg('port'); + $this->path = $this->arg('path'); + $this->protocol = $this->arg('protocol'); + $this->procedure = $this->arg('notifyProcedure'); + $this->feeds = $this->getFeeds(); + + $this->subscriber_url = 'http://' . $this->ip . ':' . $this->port . $this->path; + return true; } function handle($args) { parent::handle($args); - + if ($_SERVER['REQUEST_METHOD'] != 'POST') { - showResult(false, 'Request must be POST.'); + $this->showResult(false, 'Request must be POST.'); + return; } - - $ip = $_SERVER['REMOTE_ADDR']; + $missing = array(); - $port = $this->arg('port'); - + if (empty($this->port)) { $missing[] = 'port'; } - + $path = $this->arg('path'); if (empty($this->path)) { $missing[] = 'path'; } - + $protocol = $this->arg('protocol'); if (empty($this->protocol)) { $missing[] = 'protocol'; } - - if (empty($this->notifyProcedure)) { + + if (!isset($this->procedure)) { $missing[] = 'notifyProcedure'; } - + if (!empty($missing)) { $msg = 'The following parameters were missing from the request body: ' . - implode(',', $missing) . '.'; + implode(', ', $missing) . '.'; $this->showResult(false, $msg); + return; } - - $feeds = $this->getFeeds(); - - if (empty($feeds)) { - $this->showResult(false, - 'You must provide at least one feed url (url1, url2, url3 ... urlN).'); + + if (empty($this->feeds)) { + $this->showResult(false, + 'You must provide at least one valid profile feed url (url1, url2, url3 ... urlN).'); + return; } - + $endpoint = $ip . ':' . $port . $path; - - foreach ($feeds as $feed) { - + + foreach ($this->feeds as $feed) { + $this->saveSubscription($feed); } - - + + // XXX: What to do about deleting stale subscriptions? 25 hours seems harsh. + // WordPress doesn't ever remove subscriptions. + + $msg = 'Thanks for the registration. It worked. When the feed(s) update(s) we\'ll notify you. ' . + ' Don\'t forget to re-register after 24 hours, your subscription will expire in 25.'; + + $this->showResult(true, $msg); } - - + function getFeeds() { $feeds = array(); - + foreach ($this->args as $key => $feed ) { if (preg_match('|url\d+|', $key)) { - - // XXX: validate feeds somehow and kick bad ones out - - $feeds[] = $feed; + + if ($this->testFeed($feed)) { + $feeds[] = $feed; + } else { + $msg = 'RSSCloud Plugin - ' . $this->ip . ' tried to subscribe ' . + 'to a non-existent feed: ' . $feed; + common_log(LOG_WARN, $msg); + } } } - + return $feeds; } - - - function checkNotifyHandler() + + function testNotificationHandler($feed) + { + $notifier = new RSSCloudNotifier(); + return $notifier->postUpdate($endpoint, $feed); + } + + // returns valid user or false + function testFeed($feed) + { + $user = $this->userFromFeed($feed); + + if (!empty($user)) { + + common_debug("Valid feed: $feed"); + + // OK, so this is a valid profile feed url, now let's see if the + // other system reponds to our notifications before we + // add the sub... + + if ($this->testNotificationHandler($feed)) { + return true; + } + } + + return false; + } + + // this actually does the validating and figuring out the + // user, which it returns + function userFromFeed($feed) { - + // We only do profile feeds + + $path = common_path('api/statuses/user_timeline/'); + $valid = '%^' . $path . '(?.*)\.rss$%'; + + if (preg_match($valid, $feed, $matches)) { + $user = User::staticGet('nickname', $matches['nickname']); + if (!empty($user)) { + return $user; + } + } + + return false; } - - function validateFeed() + + function saveSubscription($feed) { + // check to see if we already have a profile for this subscriber + + $other = Remote_profile::staticGet('uri', $this->subscriber_url); + + if ($other === false) { + $other->saveProfile(); + } + + $user = userFromFeed($feed); + + $result = subs_subscribe_to($user, $other); + + if ($result != true) { + $msg = "RSSPlugin - got '$result' trying to subscribe " . + "$this->subscriber_url to $user->nickname" . "'s profile feed."; + common_log(LOG_WARN, $msg); + } else { + $msg = 'RSSCloud plugin - subscribe: ' . $this->subscriber_url . + ' subscribed to ' . $feed; + + common_log(LOG_INFO, $msg); + } + } + + function saveProfile() + { + common_debug("Saving remote profile for $this->subscriber_url"); + + // XXX: We need to add a field to Remote_profile to indicate the kind + // of remote profile? i.e: OMB, RSSCloud, PuSH, Twitter + + $remote = new Remote_profile(); + $remote->uri = $this->subscriber_url; + $remote->postnoticeurl = $this->subscriber_url; + $remote->created = DB_DataObject_Cast::dateTime(); + + if (!$remote->insert()) { + throw new Exception(_('RSSCloud plugin - Error inserting remote profile!')); + } } - - function showResult($success, $msg) + + function showResult($success, $msg) { $this->startXML(); $this->elementStart('notifyResult', array('success' => ($success) ? 'true' : 'false', 'msg' => $msg)); $this->endXML(); - } - - + } -- cgit v1.2.3-54-g00ecf From 46ac99cf4dc58b4e92a9b2397658ad8a093ee02f Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 3 Nov 2009 16:51:40 -0800 Subject: Only add rssCloud link to user timeline --- plugins/RSSCloud/RSSCloudPlugin.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index a971c3156..a86c153f1 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -111,10 +111,7 @@ class RSSCloudPlugin extends Plugin function onStartApiRss($action){ - // XXX: we want to only cloud enable the user_timeline so we need - // to be even more specific than this... FIXME - - if (get_class($action) == 'TwitapistatusesAction') { + if (get_class($action) == 'ApiTimelineUserAction') { $attrs = array('domain' => $this->domain, 'port' => $this->port, -- cgit v1.2.3-54-g00ecf From aa9f81193e9f623dec136c6c5b7ddd6ebb948ab0 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 3 Nov 2009 17:53:17 -0800 Subject: Queue notices for rssCloud --- plugins/RSSCloud/RSSCloudPlugin.php | 57 ++++++++++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 13 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index a86c153f1..816739889 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -130,21 +130,52 @@ class RSSCloudPlugin extends Plugin } } - function onEndNoticeSave($notice){ - - common_debug("RSSCloudPlugin oneEndNoticeSave()"); - - $user = User::staticGet('id', $notice->profile_id); - $feed = common_local_url('api', array('apiaction' => 'statuses', - 'method' => 'user_timeline', - 'argument' => $user->nickname . '.rss')); - - // XXX: Dave's hub for testing - // $endpoint = 'http://rpc.rsscloud.org:5337/rsscloud/ping'; + /** + * Add an RSSCloud queue item for each notice + * + * @param Notice $notice the notice + * @param array &$transports the list of transports (queues) + * + * @return boolean hook return + */ + function onStartEnqueueNotice($notice, &$transports) + { + array_push($transports, 'rsscloud'); + return true; + } - // $notifier = new RSSCloudNotifier(); - // $notifier->postUpdate($endpoint, $feed); + /** + * broadcast the message when not using queuehandler + * + * @param Notice &$notice the notice + * @param array $queue destination queue + * + * @return boolean hook return + */ + function onUnqueueHandleNotice(&$notice, $queue) + { + if (($queue == 'rsscloud') && ($this->_isLocal($notice))) { + + // broadcast the notice here + common_debug('broadcasting rssCloud bound notice ' . $notice->id); + + return false; + } + return true; } + /** + * Determine whether the notice was locally created + * + * @param Notice $notice + * + * @return boolean locality + */ + function _isLocal($notice) + { + return ($notice->is_local == Notice::LOCAL_PUBLIC || + $notice->is_local == Notice::LOCAL_NONPUBLIC); + } + } -- cgit v1.2.3-54-g00ecf From 8980bebcb38eaaca934141b1828e243609577a51 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 4 Nov 2009 17:32:17 -0800 Subject: Add a table and DB_DataObject class for storing cloud subscriptions --- plugins/RSSCloud/RSSCloudPlugin.php | 33 ++++-- plugins/RSSCloud/RSSCloudRequestNotify.php | 167 ++++++++++++++++------------- plugins/RSSCloud/RSSCloudSubscription.php | 82 ++++++++++++++ 3 files changed, 200 insertions(+), 82 deletions(-) create mode 100644 plugins/RSSCloud/RSSCloudSubscription.php diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 816739889..10f81b8dd 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -95,14 +95,15 @@ class RSSCloudPlugin extends Plugin { switch ($cls) { - + case 'RSSCloudSubscription': + include_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudSubscription.php'); + return false; case 'RSSCloudNotifier': - require_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php'); + include_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php'); return false; case 'RSSCloudRequestNotifyAction': case 'LoggingAggregatorAction': - common_debug(mb_substr($cls, 0, -6) . '.php'); - require_once(INSTALLDIR . '/plugins/RSSCloud/' . mb_substr($cls, 0, -6) . '.php'); + include_once(INSTALLDIR . '/plugins/RSSCloud/' . mb_substr($cls, 0, -6) . '.php'); return false; default: return true; @@ -155,10 +156,10 @@ class RSSCloudPlugin extends Plugin function onUnqueueHandleNotice(&$notice, $queue) { if (($queue == 'rsscloud') && ($this->_isLocal($notice))) { - + // broadcast the notice here common_debug('broadcasting rssCloud bound notice ' . $notice->id); - + return false; } return true; @@ -176,6 +177,24 @@ class RSSCloudPlugin extends Plugin return ($notice->is_local == Notice::LOCAL_PUBLIC || $notice->is_local == Notice::LOCAL_NONPUBLIC); } - + + + function onCheckSchema() { + $schema = Schema::get(); + $schema->ensureTable('rsscloud_subscription', + array(new ColumnDef('subscribed', 'integer', + null, false, 'PRI'), + new ColumnDef('url', 'varchar', + '255', false, 'PRI'), + new ColumnDef('failures', 'integer', + null, false, 'MUL'), + new ColumnDef('created', 'datetime', + null, false), + new ColumnDef('modified', 'timestamp') + ) + ); + return true; + } + } diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 48bd3fb27..8b5deb136 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -51,10 +51,10 @@ class RSSCloudRequestNotifyAction extends Action $this->path = $this->arg('path'); $this->protocol = $this->arg('protocol'); $this->procedure = $this->arg('notifyProcedure'); + $this->domain = $this->arg('domain'); + $this->feeds = $this->getFeeds(); - $this->subscriber_url = 'http://' . $this->ip . ':' . $this->port . $this->path; - return true; } @@ -102,70 +102,93 @@ class RSSCloudRequestNotifyAction extends Action return; } - $endpoint = $ip . ':' . $port . $path; + // We have to validate everything before saving anything. + // We only return one success or failure no matter how + // many feeds the subscriber is trying to subscribe to foreach ($this->feeds as $feed) { - $this->saveSubscription($feed); + + if (!$this->validateFeed($feed)) { + $msg = 'Feed subscription failed - Not a valid feed.'; + $this->showResult(false, $msg); + return; + } + + if (!$this->testNotificationHandler($feed)) { + $msg = 'Feed subscription failed - ' . + 'notification handler doesn\'t respond correctly.'; + $this->showResult(false, $msg); + return; + } + } + foreach ($this->feeds as $feed) { + $this->saveSubscription($feed); + } + // XXX: What to do about deleting stale subscriptions? 25 hours seems harsh. // WordPress doesn't ever remove subscriptions. $msg = 'Thanks for the registration. It worked. When the feed(s) update(s) we\'ll notify you. ' . ' Don\'t forget to re-register after 24 hours, your subscription will expire in 25.'; - $this->showResult(true, $msg); + $this->showResult(true, $msg); } - function getFeeds() + function validateFeed($feed) { - $feeds = array(); - - foreach ($this->args as $key => $feed ) { - if (preg_match('|url\d+|', $key)) { + $user = $this->userFromFeed($feed); - if ($this->testFeed($feed)) { - $feeds[] = $feed; - } else { - $msg = 'RSSCloud Plugin - ' . $this->ip . ' tried to subscribe ' . - 'to a non-existent feed: ' . $feed; - common_log(LOG_WARN, $msg); - } - } + if (empty($user)) { + return false; } - return $feeds; + return true; } - function testNotificationHandler($feed) - { - $notifier = new RSSCloudNotifier(); - return $notifier->postUpdate($endpoint, $feed); - } - // returns valid user or false - function testFeed($feed) + function getFeeds() { - $user = $this->userFromFeed($feed); + $feeds = array(); + + while (list($key, $feed) = each ($this->args)) { + if (preg_match('/^url\d*$/', $key)) { + $feeds[] = $feed; + } + } - if (!empty($user)) { + return $feeds; + } - common_debug("Valid feed: $feed"); + function testNotificationHandler($feed) + { + common_debug("RSSCloudPlugin - testNotificationHandler()"); + + $notifier = new RSSCloudNotifier(); + + if (isset($this->domain)) { + + //get + + $this->url = 'http://' . $this->domain . ':' . $this->port . '/' . $this->path; + + common_debug('domain set need to send challenge'); + + } else { + + //post + + $this->url = 'http://' . $this->ip . ':' . $this->port . '/' . $this->path; + + //return $notifier->postUpdate($endpoint, $feed); - // OK, so this is a valid profile feed url, now let's see if the - // other system reponds to our notifications before we - // add the sub... + } - if ($this->testNotificationHandler($feed)) { - return true; - } - } + return true; - return false; } - // this actually does the validating and figuring out the - // user, which it returns function userFromFeed($feed) { // We only do profile feeds @@ -185,45 +208,39 @@ class RSSCloudRequestNotifyAction extends Action function saveSubscription($feed) { - // check to see if we already have a profile for this subscriber - - $other = Remote_profile::staticGet('uri', $this->subscriber_url); - - if ($other === false) { - $other->saveProfile(); - } - - $user = userFromFeed($feed); - - $result = subs_subscribe_to($user, $other); - - if ($result != true) { - $msg = "RSSPlugin - got '$result' trying to subscribe " . - "$this->subscriber_url to $user->nickname" . "'s profile feed."; - common_log(LOG_WARN, $msg); + $user = $this->userFromFeed($feed); + + common_debug('user = ' . $user->id); + + $sub = RSSCloudSubscription::getSubscription($user->id, $this->url); + + if ($sub) { + common_debug("already subscribed to that!"); } else { - $msg = 'RSSCloud plugin - subscribe: ' . $this->subscriber_url . - ' subscribed to ' . $feed; - - common_log(LOG_INFO, $msg); + common_debug('No feed for user ' . $user->id . ' notify: ' . $this->url); } - } - - function saveProfile() - { - common_debug("Saving remote profile for $this->subscriber_url"); - - // XXX: We need to add a field to Remote_profile to indicate the kind - // of remote profile? i.e: OMB, RSSCloud, PuSH, Twitter - - $remote = new Remote_profile(); - $remote->uri = $this->subscriber_url; - $remote->postnoticeurl = $this->subscriber_url; - $remote->created = DB_DataObject_Cast::dateTime(); - - if (!$remote->insert()) { - throw new Exception(_('RSSCloud plugin - Error inserting remote profile!')); + + common_debug('RSSPlugin - saveSubscription'); + // turn debugging high + DB_DataObject::debugLevel(5); + + $sub = new RSSCloudSubscription(); + + $sub->subscribed = $user->id; + $sub->url = $this->url; + $sub->created = common_sql_now(); + + // auto timestamp doesn't seem to work for me + + $sub->modified = common_sql_now(); + + if (!$sub->insert()) { + common_log_db_error($sub, 'INSERT', __FILE__); + return false; } + DB_DataObject::debugLevel(); + + return true; } function showResult($success, $msg) diff --git a/plugins/RSSCloud/RSSCloudSubscription.php b/plugins/RSSCloud/RSSCloudSubscription.php new file mode 100644 index 000000000..0b102e2e6 --- /dev/null +++ b/plugins/RSSCloud/RSSCloudSubscription.php @@ -0,0 +1,82 @@ +. + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Table Definition for rsscloud_subscription + */ + +require_once INSTALLDIR . '/classes/Memcached_DataObject.php'; + +class RSSCloudSubscription extends Memcached_DataObject { + + var $__table='rsscloud_subscription'; // table name + var $subscribed; // int primary key user id + var $url; // string primary key + var $failures; // int + var $created; // datestamp() + var $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + + function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('DataObjects_Grp',$k,$v); } + + function table() + { + global $_DB_DATAOBJECT; + $dbtype = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]->dsn['phptype']; + + $cols = array( + 'subscribed' => DB_DATAOBJECT_INT, + 'url' => DB_DATAOBJECT_STR, + 'failures' => DB_DATAOBJECT_INT, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME, + 'modified' => ($dbtype == 'mysql') ? + DB_DATAOBJECT_MYSQLTIMESTAMP : + DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + ); + + + // common_debug(var_export($cols, true)); + return $cols; + } + + function keys() + { + return array('subscribed', 'url'); + } + + static function getSubscription($subscribed, $url) + { + $sub = new RSSCloudSubscription(); + $sub->whereAdd("subscribed = $subscribed"); + $sub->whereAdd("url = $url"); + $sub->limit(1); + + if ($sub->find()) { + $sub->fetch(); + return $sub; + } + + return false; + } + +} +?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 3209544b30776dc64b5d21c5725028d9d6016e2f Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Sun, 8 Nov 2009 11:17:08 -0800 Subject: Fixed DB_DataObject to return the right keys info for a compound key & fix ini output --- plugins/RSSCloud/RSSCloudSubscription.php | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudSubscription.php b/plugins/RSSCloud/RSSCloudSubscription.php index 0b102e2e6..881e07165 100644 --- a/plugins/RSSCloud/RSSCloudSubscription.php +++ b/plugins/RSSCloud/RSSCloudSubscription.php @@ -40,27 +40,25 @@ class RSSCloudSubscription extends Memcached_DataObject { function table() { - global $_DB_DATAOBJECT; - $dbtype = $_DB_DATAOBJECT['CONNECTIONS'][$this->_database_dsn_md5]->dsn['phptype']; - $cols = array( - 'subscribed' => DB_DATAOBJECT_INT, - 'url' => DB_DATAOBJECT_STR, - 'failures' => DB_DATAOBJECT_INT, - 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME, - 'modified' => ($dbtype == 'mysql') ? - DB_DATAOBJECT_MYSQLTIMESTAMP : - DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME - ); + $db = $this->getDatabaseConnection(); + $dbtype = $db->phptype; + $cols = array('subscribed' => DB_DATAOBJECT_INT + DB_DATAOBJECT_NOTNULL, + 'url' => DB_DATAOBJECT_STR + DB_DATAOBJECT_NOTNULL, + 'failures' => DB_DATAOBJECT_INT, + 'created' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + DB_DATAOBJECT_NOTNULL, + 'modified' => ($dbtype == 'mysql' || $dbtype == 'mysqli') ? + DB_DATAOBJECT_MYSQLTIMESTAMP + DB_DATAOBJECT_NOTNULL : + DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME + ); - // common_debug(var_export($cols, true)); return $cols; } function keys() { - return array('subscribed', 'url'); + return array('subscribed' => 'N', 'url' => 'N'); } static function getSubscription($subscribed, $url) -- cgit v1.2.3-54-g00ecf From 7638e2713d91a829646358fbac5ab8d6ad08d6f6 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 1 Dec 2009 01:24:39 +0000 Subject: Set modified column correctly. --- plugins/RSSCloud/RSSCloudPlugin.php | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 10f81b8dd..8e57b4a3e 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -50,7 +50,7 @@ class RSSCloudPlugin extends Plugin // set defaults - $local_server = parse_url(common_path('rsscloud/request_notify')); + $local_server = parse_url(common_path('/main/rsscloud/request_notify')); if (empty($this->domain)) { $this->domain = $local_server['host']; @@ -61,7 +61,7 @@ class RSSCloudPlugin extends Plugin } if (empty($this->path)) { - $this->path = '/rsscloud/request_notify'; + $this->path = '/main/rsscloud/request_notify'; } if (empty($this->funct)) { @@ -83,10 +83,10 @@ class RSSCloudPlugin extends Plugin function onRouterInitialized(&$m) { - $m->connect('rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); + $m->connect('/main/rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); // XXX: This is just for end-to-end testing - $m->connect('rsscloud/notify', array('action' => 'LoggingAggregator')); + $m->connect('/main/rsscloud/notify', array('action' => 'LoggingAggregator')); return true; } @@ -110,8 +110,8 @@ class RSSCloudPlugin extends Plugin } } - function onStartApiRss($action){ - + function onStartApiRss($action) + { if (get_class($action) == 'ApiTimelineUserAction') { $attrs = array('domain' => $this->domain, @@ -126,8 +126,8 @@ class RSSCloudPlugin extends Plugin foreach ($attrs as $name => $value) { $action->xw->writeAttribute($name, $value); } - $action->xw->endElement(); + $action->xw->endElement(); } } @@ -178,7 +178,6 @@ class RSSCloudPlugin extends Plugin $notice->is_local == Notice::LOCAL_NONPUBLIC); } - function onCheckSchema() { $schema = Schema::get(); $schema->ensureTable('rsscloud_subscription', @@ -187,10 +186,13 @@ class RSSCloudPlugin extends Plugin new ColumnDef('url', 'varchar', '255', false, 'PRI'), new ColumnDef('failures', 'integer', - null, false, 'MUL'), + null, false, null, 0), new ColumnDef('created', 'datetime', null, false), - new ColumnDef('modified', 'timestamp') + new ColumnDef('modified', 'timestamp', + null, false, null, + 'CURRENT_TIMESTAMP', + 'on update CURRENT_TIMESTAMP') ) ); return true; -- cgit v1.2.3-54-g00ecf From 6b28fbe7b600b56ab06b373173d9f04fae9333ce Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Sat, 5 Dec 2009 07:17:51 +0000 Subject: Make dummy aggregator handle RSSCloud challenge/response with domain parameter --- plugins/RSSCloud/LoggingAggregator.php | 53 +++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 13 deletions(-) diff --git a/plugins/RSSCloud/LoggingAggregator.php b/plugins/RSSCloud/LoggingAggregator.php index 2573d9343..cbdefc36b 100644 --- a/plugins/RSSCloud/LoggingAggregator.php +++ b/plugins/RSSCloud/LoggingAggregator.php @@ -36,6 +36,9 @@ if (!defined('STATUSNET')) { class LoggingAggregatorAction extends Action { + var $challenge = null; + var $url = null; + /** * Initialization. * @@ -46,6 +49,13 @@ class LoggingAggregatorAction extends Action function prepare($args) { parent::prepare($args); + + $this->url = $this->arg('url'); + $this->challenge = $this->arg('challenge'); + + common_debug("args = " . var_export($this->args, true)); + common_debug('url = ' . $this->url . ' challenge = ' . $this->challenge); + return true; } @@ -53,33 +63,50 @@ class LoggingAggregatorAction extends Action { parent::handle($args); - if ($_SERVER['REQUEST_METHOD'] != 'POST') { - $this->showError('This resource requires an HTTP POST.'); + if (empty($this->url)) { + $this->showError('Hey, you have to provide a url parameter.'); + return; } - $this->url = $this->arg('url'); + if (!empty($this->challenge)) { + + // must be a GET + + if ($_SERVER['REQUEST_METHOD'] != 'GET') { + $this->showError('This resource requires an HTTP GET.'); + return; + } + + header('Content-Type: text/xml'); + echo "\n"; + + } else { + + // must be a POST + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + $this->showError('This resource requires an HTTP POST.'); + return; + } + + header('Content-Type: text/xml'); + echo '' . "\n"; - if (empty($this->url)) { - $this->showError('Hey, you have to provide a url parameter.'); } - $this->ip = $_SERVER['REMOTE_ADDR']; + $this->ip = $_SERVER['REMOTE_ADDR']; common_log(LOG_INFO, 'RSSCloud Logging Aggregator - ' . $this->ip . ' claims the feed at ' . $this->url . ' has been updated.'); - - header('Content-Type: text/xml'); - echo '' . "\n"; - - } + } function showError($msg) { - header('HTTP/1.1 403 Forbidden'); + header('HTTP/1.1 400 Bad Request'); header('Content-Type: text/xml'); echo "\n"; echo "\n"; - exit(); } } \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 4e07d9eeec0e2cc8f77dbd9d6e67c9ca03adc7ba Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Sat, 5 Dec 2009 07:33:15 +0000 Subject: Better .ini info for RSSCloud subscription --- plugins/RSSCloud/RSSCloudSubscription.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudSubscription.php b/plugins/RSSCloud/RSSCloudSubscription.php index 881e07165..396c604e7 100644 --- a/plugins/RSSCloud/RSSCloudSubscription.php +++ b/plugins/RSSCloud/RSSCloudSubscription.php @@ -65,7 +65,7 @@ class RSSCloudSubscription extends Memcached_DataObject { { $sub = new RSSCloudSubscription(); $sub->whereAdd("subscribed = $subscribed"); - $sub->whereAdd("url = $url"); + $sub->whereAdd("url = '$url'"); $sub->limit(1); if ($sub->find()) { @@ -77,4 +77,3 @@ class RSSCloudSubscription extends Memcached_DataObject { } } -?> \ No newline at end of file -- cgit v1.2.3-54-g00ecf From 61804bb7bbd0cea92ba2bbcce15e37a35195341a Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 7 Dec 2009 09:10:04 +0000 Subject: Plugin now checks notify handlers before registering subscriptions --- plugins/RSSCloud/LoggingAggregator.php | 5 +- plugins/RSSCloud/RSSCloudNotifier.php | 90 +++++++++++++---------- plugins/RSSCloud/RSSCloudPlugin.php | 2 + plugins/RSSCloud/RSSCloudRequestNotify.php | 112 ++++++++++++++--------------- 4 files changed, 110 insertions(+), 99 deletions(-) diff --git a/plugins/RSSCloud/LoggingAggregator.php b/plugins/RSSCloud/LoggingAggregator.php index cbdefc36b..02175f43a 100644 --- a/plugins/RSSCloud/LoggingAggregator.php +++ b/plugins/RSSCloud/LoggingAggregator.php @@ -1,5 +1,4 @@ challenge . "' />\n"; + echo $this->challenge; } else { @@ -92,7 +90,6 @@ class LoggingAggregatorAction extends Action header('Content-Type: text/xml'); echo '' . "\n"; - } $this->ip = $_SERVER['REMOTE_ADDR']; diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index c2130b7b8..eb3198b5a 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -33,59 +33,77 @@ if (!defined('STATUSNET')) { class RSSCloudNotifier { - function postUpdate($endpoint, $feed) { - common_debug("CloudNotifier->notify: $feed"); + function challenge($endpoint, $feed) + { + $code = common_confirmation_code(128); + $params = array('url' => $feed, 'challenge' => $code); + $url = $endpoint . '?' . http_build_query($params); + + try { + $client = new HTTPClient(); + $response = $client->get($url); + } catch (HTTP_Request2_Exception $e) { + common_log(LOG_INFO, 'RSSCloud plugin - failure testing notify handler ' . + $endpoint . ' - ' . $e->getMessage()); + return false; + } - $params = 'url=' . urlencode($feed); + // Check response is betweet 200 and 299 and body contains challenge data - $result = $this->httpPost($endpoint, $params); + $status = $response->getStatus(); + $body = $response->getBody(); - // XXX: Make all this use CurlClient (lib/curlclient.php) + if ($status >= 200 && $status < 300) { - if ($result) { - common_debug('RSSCloud plugin - success notifying cloud endpoint!'); + if (strpos($body, $code) !== false) { + common_log(LOG_INFO, 'RSSCloud plugin - ' . + "success testing notify handler: $endpoint"); + return true; + } else { + common_log(LOG_INFO, 'RSSCloud plugin - ' . + 'challenge/repsonse failed for notify handler ' . + $endpoint); + common_debug('body = ' . var_export($body, true)); + return false; + } } else { - common_debug('RSSClous plugin - failure notifying cloud endpoint!'); + common_log(LOG_INFO, 'RSSCloud plugin - ' . + "failure testing notify handler: $endpoint " . + ' - got HTTP ' . $status); + common_debug('body = ' . var_export($body, true)); + return false; } - - return $result; } - function userAgent() - { - return 'rssCloudPlugin/' . RSSCLOUDPLUGIN_VERSION . - ' StatusNet/' . STATUSNET_VERSION; - } - - private function httpPost($url, $params) { - - $options = array(CURLOPT_URL => $url, - CURLOPT_POST => true, - CURLOPT_POSTFIELDS => $params, - CURLOPT_USERAGENT => $this->userAgent(), - CURLOPT_RETURNTRANSFER => true, - CURLOPT_FAILONERROR => true, - CURLOPT_HEADER => false, - CURLOPT_FOLLOWLOCATION => true, - CURLOPT_CONNECTTIMEOUT => 5, - CURLOPT_TIMEOUT => 5); - - $ch = curl_init(); - curl_setopt_array($ch, $options); + function postUpdate($endpoint, $feed) { - $response = curl_exec($ch); + $headers = array(); + $postdata = array('url' => $feed); - $info = curl_getinfo($ch); + try { + $client = new HTTPClient(); + $response = $client->post($endpoint, $headers, $postdata); + } catch (HTTP_Request2_Exception $e) { + common_log(LOG_INFO, 'RSSCloud plugin - failure notifying ' . + $endpoint . ' that feed ' . $feed . + ' has changed: ' . $e->getMessage()); + return false; + } - curl_close($ch); + $status = $response->getStatus(); - if ($info['http_code'] == 200) { + if ($status >= 200 && $status < 300) { + common_log(LOG_INFO, 'RSSCloud plugin - success notifying ' . + $endpoint . ' that feed ' . $feed . ' has changed.'); return true; } else { + common_log(LOG_INFO, 'RSSCloud plugin - failure notifying ' . + $endpoint . ' that feed ' . $feed . + ' has changed: got HTTP ' . $status); + common_debug('body = ' . var_export($response->getBody(), true)); return false; } } } - diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 8e57b4a3e..402fbec2d 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -112,6 +112,8 @@ class RSSCloudPlugin extends Plugin function onStartApiRss($action) { + // XXX: Add RSS 1.0 user feeds + if (get_class($action) == 'ApiTimelineUserAction') { $attrs = array('domain' => $this->domain, diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 8b5deb136..135c316f7 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -52,7 +52,7 @@ class RSSCloudRequestNotifyAction extends Action $this->protocol = $this->arg('protocol'); $this->procedure = $this->arg('notifyProcedure'); $this->domain = $this->arg('domain'); - + $this->feeds = $this->getFeeds(); return true; @@ -103,29 +103,29 @@ class RSSCloudRequestNotifyAction extends Action } // We have to validate everything before saving anything. - // We only return one success or failure no matter how + // We only return one success or failure no matter how // many feeds the subscriber is trying to subscribe to foreach ($this->feeds as $feed) { - + if (!$this->validateFeed($feed)) { $msg = 'Feed subscription failed - Not a valid feed.'; $this->showResult(false, $msg); return; } - + if (!$this->testNotificationHandler($feed)) { $msg = 'Feed subscription failed - ' . 'notification handler doesn\'t respond correctly.'; $this->showResult(false, $msg); - return; + return; } - + } foreach ($this->feeds as $feed) { $this->saveSubscription($feed); - } + } // XXX: What to do about deleting stale subscriptions? 25 hours seems harsh. // WordPress doesn't ever remove subscriptions. @@ -133,7 +133,7 @@ class RSSCloudRequestNotifyAction extends Action $msg = 'Thanks for the registration. It worked. When the feed(s) update(s) we\'ll notify you. ' . ' Don\'t forget to re-register after 24 hours, your subscription will expire in 25.'; - $this->showResult(true, $msg); + $this->showResult(true, $msg); } function validateFeed($feed) @@ -147,45 +147,45 @@ class RSSCloudRequestNotifyAction extends Action return true; } - function getFeeds() { $feeds = array(); - - while (list($key, $feed) = each ($this->args)) { + + while (list($key, $feed) = each ($this->args)) { if (preg_match('/^url\d*$/', $key)) { $feeds[] = $feed; - } + } } return $feeds; } function testNotificationHandler($feed) - { + { common_debug("RSSCloudPlugin - testNotificationHandler()"); - + $notifier = new RSSCloudNotifier(); - + if (isset($this->domain)) { - - //get - - $this->url = 'http://' . $this->domain . ':' . $this->port . '/' . $this->path; - - common_debug('domain set need to send challenge'); - + + // 'domain' param set, so we have to use GET and send a challenge + + $endpoint = 'http://' . $this->domain . ':' . $this->port . '/' . $this->path; + + common_log(LOG_INFO, 'Testing notification handler with challenge: ' . + $endpoint); + + return $notifier->challenge($endpoint, $feed); + } else { - - //post - - $this->url = 'http://' . $this->ip . ':' . $this->port . '/' . $this->path; - - //return $notifier->postUpdate($endpoint, $feed); - } + $endpoint = 'http://' . $this->ip . ':' . $this->port . '/' . $this->path; - return true; + common_log(LOG_INFO, 'Testing notification handler: ' . + $endpoint); + + return $notifier->postUpdate($endpoint, $feed); + } } @@ -193,6 +193,8 @@ class RSSCloudRequestNotifyAction extends Action { // We only do profile feeds + // XXX: Add cloud element to RSS 1.0 feeds + $path = common_path('api/statuses/user_timeline/'); $valid = '%^' . $path . '(?.*)\.rss$%'; @@ -209,37 +211,31 @@ class RSSCloudRequestNotifyAction extends Action function saveSubscription($feed) { $user = $this->userFromFeed($feed); - - common_debug('user = ' . $user->id); - + $sub = RSSCloudSubscription::getSubscription($user->id, $this->url); - + if ($sub) { - common_debug("already subscribed to that!"); + common_debug("Already subscribed to that!"); } else { - common_debug('No feed for user ' . $user->id . ' notify: ' . $this->url); - } - - common_debug('RSSPlugin - saveSubscription'); - // turn debugging high - DB_DataObject::debugLevel(5); - - $sub = new RSSCloudSubscription(); - - $sub->subscribed = $user->id; - $sub->url = $this->url; - $sub->created = common_sql_now(); - - // auto timestamp doesn't seem to work for me - - $sub->modified = common_sql_now(); - - if (!$sub->insert()) { - common_log_db_error($sub, 'INSERT', __FILE__); - return false; + + $sub = new RSSCloudSubscription(); + + $sub->subscribed = $user->id; + $sub->url = $this->url; + $sub->created = common_sql_now(); + + // auto timestamp doesn't seem to work for me + + // $sub->modified = common_sql_now(); + + if (!$sub->insert()) { + common_log_db_error($sub, 'INSERT', __FILE__); + return false; + } + + DB_DataObject::debugLevel(); } - DB_DataObject::debugLevel(); - + return true; } @@ -253,5 +249,3 @@ class RSSCloudRequestNotifyAction extends Action } - - -- cgit v1.2.3-54-g00ecf From d091d061151749feddd3751f953f9bec48e382f2 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 8 Dec 2009 06:26:11 +0000 Subject: Notifier works, and bad subscriptions are deleted properly now. --- plugins/RSSCloud/RSSCloudNotifier.php | 78 +++++++++++++++++++++++++++++- plugins/RSSCloud/RSSCloudPlugin.php | 7 ++- plugins/RSSCloud/RSSCloudRequestNotify.php | 58 +++++++++++----------- 3 files changed, 113 insertions(+), 30 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index eb3198b5a..67bd000f0 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -33,6 +33,8 @@ if (!defined('STATUSNET')) { class RSSCloudNotifier { + const MAX_FAILURES = 3; + function challenge($endpoint, $feed) { $code = common_confirmation_code(128); @@ -55,6 +57,11 @@ class RSSCloudNotifier { if ($status >= 200 && $status < 300) { + // NOTE: the spec says that the body must contain the string + // challenge. It doesn't say that the body must contain the + // challenge string ONLY, although that seems to be the way + // the other implementations have interpreted it. + if (strpos($body, $code) !== false) { common_log(LOG_INFO, 'RSSCloud plugin - ' . "success testing notify handler: $endpoint"); @@ -100,10 +107,79 @@ class RSSCloudNotifier { common_log(LOG_INFO, 'RSSCloud plugin - failure notifying ' . $endpoint . ' that feed ' . $feed . ' has changed: got HTTP ' . $status); - common_debug('body = ' . var_export($response->getBody(), true)); return false; } } + function notify($profile) + { + $feed = common_path('api/statuses/user_timeline/') . + $profile->nickname . '.rss'; + + $cloudSub = new RSSCloudSubscription(); + $cloudSub->subscribed = $profile->id; + + if ($cloudSub->find()) { + while ($cloudSub->fetch()) { + $result = $this->postUpdate($cloudSub->url, $feed); + if ($result == false) { + $this->handleFailure($cloudSub); + } + } + } + } + + function handleFailure($cloudSub) + { + $failCnt = $cloudSub->failures + 1; + + if ($failCnt == self::MAX_FAILURES) { + + common_log(LOG_INFO, + 'Deleting RSSCloud subcription (max failure count reached), profile: ' . + $cloudSub->subscribed . + ' handler: ' . + $cloudSub->url); + + // XXX: WTF! ->delete() doesn't work. Clearly, there are some issues with + // the DB_DataObject, or my understanding of it. Have to drop into SQL. + + // $result = $cloudSub->delete(); + + $qry = 'DELETE from rsscloud_subscription' . + ' WHERE subscribed = ' . $cloudSub->subscribed . + ' AND url = \'' . $cloudSub->url . '\''; + + $result = $cloudSub->query($qry); + + if (!$result) { + common_log_db_error($cloudSub, 'DELETE', __FILE__); + common_log(LOG_ERR, 'Could not delete RSSCloud subscription.'); + } + + } else { + + common_debug('Updating failure count on RSSCloud subscription. ' . $failCnt); + + $failCnt = $cloudSub->failures + 1; + + // XXX: ->update() not working either, gar! + + $qry = 'UPDATE rsscloud_subscription' . + ' SET failures = ' . $failCnt . + ' WHERE subscribed = ' . $cloudSub->subscribed . + ' AND url = \'' . $cloudSub->url . '\''; + + common_debug($qry); + + $result = $cloudSub->query($qry); + + if (!$result) { + common_log_db_error($cloudsub, 'UPDATE', __FILE__); + common_log(LOG_ERR, 'Could not update failure count on RSSCloud subscription'); + } + } + } + } diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 402fbec2d..b9187d86c 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -159,11 +159,16 @@ class RSSCloudPlugin extends Plugin { if (($queue == 'rsscloud') && ($this->_isLocal($notice))) { - // broadcast the notice here common_debug('broadcasting rssCloud bound notice ' . $notice->id); + $profile = $notice->getProfile(); + + $notifier = new RSSCloudNotifier(); + $notifier->notify($profile); + return false; } + return true; } diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 135c316f7..36959755a 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -1,5 +1,4 @@ ip = $_SERVER['REMOTE_ADDR']; $this->port = $this->arg('port'); $this->path = $this->arg('path'); + + if ($this->path[0] != '/') { + $this->path = '/' . $this->path; + } + $this->protocol = $this->arg('protocol'); $this->procedure = $this->arg('notifyProcedure'); $this->domain = $this->arg('domain'); @@ -73,14 +77,10 @@ class RSSCloudRequestNotifyAction extends Action $missing[] = 'port'; } - $path = $this->arg('path'); - if (empty($this->path)) { $missing[] = 'path'; } - $protocol = $this->arg('protocol'); - if (empty($this->protocol)) { $missing[] = 'protocol'; } @@ -127,11 +127,12 @@ class RSSCloudRequestNotifyAction extends Action $this->saveSubscription($feed); } - // XXX: What to do about deleting stale subscriptions? 25 hours seems harsh. - // WordPress doesn't ever remove subscriptions. + // XXX: What to do about deleting stale subscriptions? + // 25 hours seems harsh. WordPress doesn't ever remove + // subscriptions. - $msg = 'Thanks for the registration. It worked. When the feed(s) update(s) we\'ll notify you. ' . - ' Don\'t forget to re-register after 24 hours, your subscription will expire in 25.'; + $msg = 'Thanks for the subscription. ' . + 'When the feed(s) update(s) we\'ll notify you.'; $this->showResult(true, $msg); } @@ -164,36 +165,40 @@ class RSSCloudRequestNotifyAction extends Action { common_debug("RSSCloudPlugin - testNotificationHandler()"); + $notifyUrl = $this->getNotifyUrl(); + $notifier = new RSSCloudNotifier(); if (isset($this->domain)) { // 'domain' param set, so we have to use GET and send a challenge - $endpoint = 'http://' . $this->domain . ':' . $this->port . '/' . $this->path; - common_log(LOG_INFO, 'Testing notification handler with challenge: ' . - $endpoint); - - return $notifier->challenge($endpoint, $feed); + $notifyUrl); + return $notifier->challenge($notifyUrl, $feed); } else { - - $endpoint = 'http://' . $this->ip . ':' . $this->port . '/' . $this->path; - common_log(LOG_INFO, 'Testing notification handler: ' . - $endpoint); + $notifyUrl); - return $notifier->postUpdate($endpoint, $feed); + return $notifier->postUpdate($notifyUrl, $feed); } - } + function getNotifyUrl() + { + if (isset($this->domain)) { + return 'http://' . $this->domain . ':' . $this->port . $this->path; + } else { + return 'http://' . $this->ip . ':' . $this->port . $this->path; + } + } + function userFromFeed($feed) { // We only do profile feeds - // XXX: Add cloud element to RSS 1.0 feeds + // XXX: Add cloud element to RSS 1.0 feeds? $path = common_path('api/statuses/user_timeline/'); $valid = '%^' . $path . '(?.*)\.rss$%'; @@ -212,7 +217,9 @@ class RSSCloudRequestNotifyAction extends Action { $user = $this->userFromFeed($feed); - $sub = RSSCloudSubscription::getSubscription($user->id, $this->url); + $notifyUrl = $this->getNotifyUrl(); + + $sub = RSSCloudSubscription::getSubscription($user->id, $notifyUrl); if ($sub) { common_debug("Already subscribed to that!"); @@ -221,19 +228,14 @@ class RSSCloudRequestNotifyAction extends Action $sub = new RSSCloudSubscription(); $sub->subscribed = $user->id; - $sub->url = $this->url; + $sub->url = $notifyUrl; $sub->created = common_sql_now(); - // auto timestamp doesn't seem to work for me - - // $sub->modified = common_sql_now(); - if (!$sub->insert()) { common_log_db_error($sub, 'INSERT', __FILE__); return false; } - DB_DataObject::debugLevel(); } return true; -- cgit v1.2.3-54-g00ecf From ff26b8d88b9e3d185afa83fd2b08c0d67cd4f78d Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 8 Dec 2009 21:04:26 +0000 Subject: Add an RSSCloud queue handler daemon --- plugins/RSSCloud/RSSCloudNotifier.php | 2 + plugins/RSSCloud/RSSCloudPlugin.php | 7 +++ plugins/RSSCloud/RSSCloudQueueHandler.php | 78 +++++++++++++++++++++++++++++++ scripts/stopdaemons.sh | 2 +- 4 files changed, 88 insertions(+), 1 deletion(-) create mode 100755 plugins/RSSCloud/RSSCloudQueueHandler.php diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index 67bd000f0..909cf5c9f 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -127,6 +127,8 @@ class RSSCloudNotifier { } } } + + return true; } function handleFailure($cloudSub) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index b9187d86c..fcd468f55 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -205,5 +205,12 @@ class RSSCloudPlugin extends Plugin return true; } + function onGetValidDaemons($daemons) + { + array_push($daemons, INSTALLDIR . + '/plugins/RSSCloud/RSSCloudQueueHandler.php'); + return true; + } + } diff --git a/plugins/RSSCloud/RSSCloudQueueHandler.php b/plugins/RSSCloud/RSSCloudQueueHandler.php new file mode 100755 index 000000000..693dd27c1 --- /dev/null +++ b/plugins/RSSCloud/RSSCloudQueueHandler.php @@ -0,0 +1,78 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +$shortoptions = 'i::'; +$longoptions = array('id::'); + +$helptext = <<log(LOG_INFO, "INITIALIZE"); + $this->notifier = new RSSCloudNotifier(); + return true; + } + + function handle_notice($notice) + { + $profile = $notice->getProfile(); + return $this->notifier->notify($profile); + } + + function finish() + { + } + +} + +if (have_option('i')) { + $id = get_option_value('i'); +} else if (have_option('--id')) { + $id = get_option_value('--id'); +} else if (count($args) > 0) { + $id = $args[0]; +} else { + $id = null; +} + +$handler = new RSSCloudQueueHandler($id); + +$handler->runOnce(); diff --git a/scripts/stopdaemons.sh b/scripts/stopdaemons.sh index 90e7331ca..c790f1f34 100755 --- a/scripts/stopdaemons.sh +++ b/scripts/stopdaemons.sh @@ -25,7 +25,7 @@ DIR=`php $SDIR/getpiddir.php` for f in jabberhandler ombhandler publichandler smshandler pinghandler \ xmppconfirmhandler xmppdaemon twitterhandler facebookhandler \ - twitterstatusfetcher synctwitterfriends pluginhandler; do + twitterstatusfetcher synctwitterfriends pluginhandler rsscloudhandler; do FILES="$DIR/$f.*.pid" for ff in "$FILES" ; do -- cgit v1.2.3-54-g00ecf From 9960ec2143445417a5f44f307b1dfbbd97194b45 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 9 Dec 2009 02:14:48 +0000 Subject: Support an 'extra' clause when definining a column (e.g.: 'on update CURRENT_TIMESTAMP'). --- lib/schema.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/schema.php b/lib/schema.php index 6fe442d56..a7f64ebed 100644 --- a/lib/schema.php +++ b/lib/schema.php @@ -528,6 +528,10 @@ class Schema $sql .= " auto_increment "; } + if (!empty($cd->extra)) { + $sql .= "{$cd->extra} "; + } + return $sql; } } -- cgit v1.2.3-54-g00ecf From c571c1323f3ff42baa31dd4f008d2417ac0f0e76 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Thu, 10 Dec 2009 19:19:15 -0800 Subject: Added intial README --- plugins/RSSCloud/README | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 plugins/RSSCloud/README diff --git a/plugins/RSSCloud/README b/plugins/RSSCloud/README new file mode 100644 index 000000000..8fd281aab --- /dev/null +++ b/plugins/RSSCloud/README @@ -0,0 +1,53 @@ +This plugin enables RSSCloud (http://rsscloud.org/) publishing and +subscription handling for RSS 2.0 profile feeds (i.e: +http://SITE/PATH/api/statuses/user_timeline/USERNAME.rss). When the +plugin is enabled, StatusNet acts as both the publisher and hub ('writer' and +'cloud' in RSSCloud parlance), but only for local StatusNet feeds. It's +not possible to use it as a general purpose hub -- for instance you can't +subscribe and get updates to a Wordpress feed from StatusNet. + +To use the plugin, add the following to your config.php: + + addPlugin('RSSCloud'); + +Enabling the plugin will add a element to your RSS 2.0 profile feeds +that looks like this: + + + +Aggregators may subscribe by sending a proper REST RSSCloud subscription +request (the optional 'domain' parameter with challenge is supported). +Subscribing aggregators will be notified ('pinged') when users they have +subscribed to post new notices. Currently, REST is the only protocol +supported for notifications. + +Deamon +------ + +There's also a daemon for offline processing of queued notices with +RSSCloud destinations, which will start automatically if/when you run +scripts/startdaemons.sh. + +Notes +----- + +- Again, only RSS 2.0 profile feeds may be subscribed to, and they have + be the ones with user names in them, like: + http://SITE/PATH/api/statuses/user_timeline/USERNAME.rss +- Subscriptions are deleted after three notification failures in a row + (not sure this is optimal). +- The plugin includes a dummy LoggingAggregator class that can be used + for end-to-end testing. You probably don't want to mess with it. + +TODO +---- + +- Figure out why the RSSCloudSubcription can't ->delete() or ->update() +- Support pinging via XML-RPC and SOAP +- Automatically delete subscriptions? Point of reference: Dave's hub + implementation auto-deletes them after 25 hours. WordPress never deletes them. +- Support additional feed URL addresses for the same feed (e.g.: by numeric ID, + ?user_id=xxx, etc.) +- Support additional feeds that make sense (e.g: replies)? +- Possibly use "rssCloud" (like Dave) instead of "RSSCloud" everywhere -- cgit v1.2.3-54-g00ecf From 48af79dbb4cf1b4f915bf0d3d05e9fe3770664df Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 11 Dec 2009 17:50:10 -0800 Subject: Added a bunch of function commment blocks --- plugins/RSSCloud/LoggingAggregator.php | 30 +++++++++++ plugins/RSSCloud/RSSCloudNotifier.php | 52 ++++++++++++++++-- plugins/RSSCloud/RSSCloudPlugin.php | 63 ++++++++++++++++++++-- plugins/RSSCloud/RSSCloudRequestNotify.php | 85 +++++++++++++++++++++++++++++- 4 files changed, 222 insertions(+), 8 deletions(-) diff --git a/plugins/RSSCloud/LoggingAggregator.php b/plugins/RSSCloud/LoggingAggregator.php index 02175f43a..c81a987f7 100644 --- a/plugins/RSSCloud/LoggingAggregator.php +++ b/plugins/RSSCloud/LoggingAggregator.php @@ -32,6 +32,19 @@ if (!defined('STATUSNET')) { exit(1); } +/** + * Dummy aggregator that acts as a proper notification handler. It + * doesn't do anything but respond correctly when notified via + * REST. Mostly, this is just and action I used to develop the plugin + * and easily test things end-to-end. I'm leaving it in here as it + * may be useful for developing the plugin further. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + **/ class LoggingAggregatorAction extends Action { @@ -45,6 +58,7 @@ class LoggingAggregatorAction extends Action * * @return boolean false if user doesn't exist */ + function prepare($args) { parent::prepare($args); @@ -58,6 +72,14 @@ class LoggingAggregatorAction extends Action return true; } + /** + * Handle the request + * + * @param array $args $_REQUEST data (unused) + * + * @return void + */ + function handle($args) { parent::handle($args); @@ -98,6 +120,14 @@ class LoggingAggregatorAction extends Action $this->url . ' has been updated.'); } + /** + * Show an XML error when things go badly + * + * @param string $msg the error message + * + * @return void + */ + function showError($msg) { header('HTTP/1.1 400 Bad Request'); diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index 909cf5c9f..485c4dcdf 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -31,10 +31,29 @@ if (!defined('STATUSNET')) { exit(1); } +/** + * Class for notifying cloud-enabled RSS aggregators that StatusNet + * feeds have been updated. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + **/ class RSSCloudNotifier { const MAX_FAILURES = 3; + /** + * Send an HTTP GET to the notification handler with a + * challenge string to see if it repsonds correctly. + * + * @param String $endpoint URL of the notification handler + * @param String $feed the feed being subscribed to + * + * @return boolean success + */ function challenge($endpoint, $feed) { $code = common_confirmation_code(128); @@ -60,7 +79,7 @@ class RSSCloudNotifier { // NOTE: the spec says that the body must contain the string // challenge. It doesn't say that the body must contain the // challenge string ONLY, although that seems to be the way - // the other implementations have interpreted it. + // the other implementors have interpreted it. if (strpos($body, $code) !== false) { common_log(LOG_INFO, 'RSSCloud plugin - ' . @@ -82,6 +101,15 @@ class RSSCloudNotifier { } } + /** + * HTTP POST a notification that a feed has been updated + * ('ping the cloud'). + * + * @param String $endpoint URL of the notification handler + * @param String $feed the feed being subscribed to + * + * @return boolean success + */ function postUpdate($endpoint, $feed) { $headers = array(); @@ -111,6 +139,14 @@ class RSSCloudNotifier { } } + /** + * Notify all subscribers to a profile feed that it has changed. + * + * @param Profile $profile the profile whose feed has been + * updated + * + * @return boolean success + */ function notify($profile) { $feed = common_path('api/statuses/user_timeline/') . @@ -131,6 +167,18 @@ class RSSCloudNotifier { return true; } + /** + * Handle problems posting cloud notifications. Increment the failure + * count, or delete the subscription if the maximum number of failures + * is exceeded. + * + * XXX: Redo with proper DB_DataObject methods once I figure out what + * what the problem is with pluginized DB_DataObjects. -Z + * + * @param RSSCloudSubscription $cloudSub the subscription in question + * + * @return boolean success + */ function handleFailure($cloudSub) { $failCnt = $cloudSub->failures + 1; @@ -172,8 +220,6 @@ class RSSCloudNotifier { ' WHERE subscribed = ' . $cloudSub->subscribed . ' AND url = \'' . $cloudSub->url . '\''; - common_debug($qry); - $result = $cloudSub->query($qry); if (!$result) { diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index fcd468f55..8c0bfa904 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -31,15 +31,35 @@ if (!defined('STATUSNET')) { exit(1); } -define('RSSCLOUDPLUGIN_VERSION', '0.1'); +/** + * Plugin class for adding RSSCloud capabilities to StatusNet + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + **/ class RSSCloudPlugin extends Plugin { + /** + * Our friend, the constructor + * + * @return void + */ function __construct() { parent::__construct(); } + /** + * Setup the info for the subscription handler. Allow overriding + * to point at another cloud hub (not currently used). + * + * @return void + */ + function onInitializePlugin() { $this->domain = common_config('rsscloud', 'domain'); @@ -91,6 +111,16 @@ class RSSCloudPlugin extends Plugin return true; } + /** + * Automatically load the actions and libraries used by + * the RSSCloud plugin + * + * @param Class $cls the class + * + * @return boolean hook return + * + */ + function onAutoload($cls) { switch ($cls) @@ -110,10 +140,17 @@ class RSSCloudPlugin extends Plugin } } + /** + * Add a element to the RSS feed (after the rss + * element is started). + * + * @param Action $action + * + * @return void + */ + function onStartApiRss($action) { - // XXX: Add RSS 1.0 user feeds - if (get_class($action) == 'ApiTimelineUserAction') { $attrs = array('domain' => $this->domain, @@ -141,6 +178,7 @@ class RSSCloudPlugin extends Plugin * * @return boolean hook return */ + function onStartEnqueueNotice($notice, &$transports) { array_push($transports, 'rsscloud'); @@ -155,6 +193,7 @@ class RSSCloudPlugin extends Plugin * * @return boolean hook return */ + function onUnqueueHandleNotice(&$notice, $queue) { if (($queue == 'rsscloud') && ($this->_isLocal($notice))) { @@ -179,12 +218,20 @@ class RSSCloudPlugin extends Plugin * * @return boolean locality */ + function _isLocal($notice) { return ($notice->is_local == Notice::LOCAL_PUBLIC || $notice->is_local == Notice::LOCAL_NONPUBLIC); } + /** + * Create the rsscloud_subscription table if it's not + * already in the DB + * + * @return boolean hook return + */ + function onCheckSchema() { $schema = Schema::get(); $schema->ensureTable('rsscloud_subscription', @@ -205,6 +252,16 @@ class RSSCloudPlugin extends Plugin return true; } + /** + * Add RSSCloudQueueHandler to the list of valid daemons to + * start + * + * @param array $daemons the list of daemons to run + * + * @return boolean hook return + * + */ + function onGetValidDaemons($daemons) { array_push($daemons, INSTALLDIR . diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 36959755a..4703ecd10 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -32,6 +32,16 @@ if (!defined('STATUSNET')) { exit(1); } +/** + * Action class to handle RSSCloud notification (subscription) requests + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + **/ + class RSSCloudRequestNotifyAction extends Action { /** @@ -41,6 +51,7 @@ class RSSCloudRequestNotifyAction extends Action * * @return boolean false if user doesn't exist */ + function prepare($args) { parent::prepare($args); @@ -62,6 +73,18 @@ class RSSCloudRequestNotifyAction extends Action return true; } + /** + * Handle the request + * + * Checks for all the required parameters for a subscription, + * validates that the feed being subscribed to is real, and then + * saves the subsctiption. + * + * @param array $args $_REQUEST data (unused) + * + * @return void + */ + function handle($args) { parent::handle($args); @@ -137,6 +160,15 @@ class RSSCloudRequestNotifyAction extends Action $this->showResult(true, $msg); } + /** + * Validate that the requested feed is one we serve + * up via RSSCloud. + * + * @param string $feed the feed in question + * + * @return void + */ + function validateFeed($feed) { $user = $this->userFromFeed($feed); @@ -148,6 +180,13 @@ class RSSCloudRequestNotifyAction extends Action return true; } + /** + * Pull all of the urls (url1, url2, url3...urlN) that + * the subscriber wants to subscribe to. + * + * @return array $feeds the list of feeds + */ + function getFeeds() { $feeds = array(); @@ -161,6 +200,15 @@ class RSSCloudRequestNotifyAction extends Action return $feeds; } + /** + * Test that a notification handler is there and is reponding + * correctly. This is called before adding a subscription. + * + * @param string $feed the feed to verify + * + * @return boolean success result + */ + function testNotificationHandler($feed) { common_debug("RSSCloudPlugin - testNotificationHandler()"); @@ -185,6 +233,13 @@ class RSSCloudRequestNotifyAction extends Action } } + /** + * Build the URL for the notification handler based on the + * parameters passed in with the subscription request. + * + * @return string notification handler url + */ + function getNotifyUrl() { if (isset($this->domain)) { @@ -194,12 +249,20 @@ class RSSCloudRequestNotifyAction extends Action } } + /** + * Uses the nickname part of the subscribed feed URL to figure out + * whethere there's really a user with such a feed. Used to + * validate feeds before adding a subscription. + * + * @param string $feed the feed in question + * + * @return boolean success + */ + function userFromFeed($feed) { // We only do profile feeds - // XXX: Add cloud element to RSS 1.0 feeds? - $path = common_path('api/statuses/user_timeline/'); $valid = '%^' . $path . '(?.*)\.rss$%'; @@ -213,6 +276,14 @@ class RSSCloudRequestNotifyAction extends Action return false; } + /** + * Save an RSSCloud subscription + * + * @param $feed a valid profile feed + * + * @return boolean success result + */ + function saveSubscription($feed) { $user = $this->userFromFeed($feed); @@ -241,6 +312,16 @@ class RSSCloudRequestNotifyAction extends Action return true; } + /** + * Show an XML message indicating the subscription + * was successful or failed. + * + * @param boolean $success whether it was good or bad + * @param string $msg the message to output + * + * @return boolean success result + */ + function showResult($success, $msg) { $this->startXML(); -- cgit v1.2.3-54-g00ecf From aad54af448089868dd1c6bcd35a5b4a301837ae4 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Sun, 13 Dec 2009 20:30:17 +0000 Subject: Reject subscription requests for handlers that don't support http-post --- plugins/RSSCloud/RSSCloudRequestNotify.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 4703ecd10..9643bf432 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -106,6 +106,10 @@ class RSSCloudRequestNotifyAction extends Action if (empty($this->protocol)) { $missing[] = 'protocol'; + } else if (strtolower($this->protocol) != 'http-post') { + $msg = 'Only http-post notifications are supported at this time.'; + $this->showResult(false, $msg); + return; } if (!isset($this->procedure)) { @@ -120,8 +124,8 @@ class RSSCloudRequestNotifyAction extends Action } if (empty($this->feeds)) { - $this->showResult(false, - 'You must provide at least one valid profile feed url (url1, url2, url3 ... urlN).'); + $msg = 'You must provide at least one valid profile feed url (url1, url2, url3 ... urlN).'; + $this->showResult(false, $msg); return; } -- cgit v1.2.3-54-g00ecf From 655dbcedb327c79c655b928ba36140519e3b6daf Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 14 Dec 2009 05:32:37 +0000 Subject: Comment out the LoggingAggregator business --- plugins/RSSCloud/RSSCloudPlugin.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 8c0bfa904..b1af9b59c 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -105,8 +105,9 @@ class RSSCloudPlugin extends Plugin { $m->connect('/main/rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); - // XXX: This is just for end-to-end testing - $m->connect('/main/rsscloud/notify', array('action' => 'LoggingAggregator')); + // XXX: This is just for end-to-end testing. Uncomment if you need to pretend + // to be a cloud hub for some reason. + // $m->connect('/main/rsscloud/notify', array('action' => 'LoggingAggregator')); return true; } -- cgit v1.2.3-54-g00ecf From 3e6b80d3e99eee4fc916a714f34e7b95ad0455a6 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 14 Dec 2009 21:24:49 +0000 Subject: Some phpcs cleanup --- plugins/RSSCloud/LoggingAggregator.php | 5 +++-- plugins/RSSCloud/RSSCloudNotifier.php | 35 ++++++++++++++++++------------ plugins/RSSCloud/RSSCloudPlugin.php | 35 +++++++++++++++++------------- plugins/RSSCloud/RSSCloudRequestNotify.php | 24 ++++++++++---------- 4 files changed, 57 insertions(+), 42 deletions(-) diff --git a/plugins/RSSCloud/LoggingAggregator.php b/plugins/RSSCloud/LoggingAggregator.php index c81a987f7..e37eed16a 100644 --- a/plugins/RSSCloud/LoggingAggregator.php +++ b/plugins/RSSCloud/LoggingAggregator.php @@ -111,12 +111,13 @@ class LoggingAggregatorAction extends Action } header('Content-Type: text/xml'); - echo '' . "\n"; + Echo "\n"; } $this->ip = $_SERVER['REMOTE_ADDR']; - common_log(LOG_INFO, 'RSSCloud Logging Aggregator - ' . $this->ip . ' claims the feed at ' . + common_log(LOG_INFO, 'RSSCloud Logging Aggregator - ' . + $this->ip . ' claims the feed at ' . $this->url . ' has been updated.'); } diff --git a/plugins/RSSCloud/RSSCloudNotifier.php b/plugins/RSSCloud/RSSCloudNotifier.php index 485c4dcdf..d454691c8 100644 --- a/plugins/RSSCloud/RSSCloudNotifier.php +++ b/plugins/RSSCloud/RSSCloudNotifier.php @@ -41,16 +41,16 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ **/ -class RSSCloudNotifier { - +class RSSCloudNotifier +{ const MAX_FAILURES = 3; /** * Send an HTTP GET to the notification handler with a * challenge string to see if it repsonds correctly. * - * @param String $endpoint URL of the notification handler - * @param String $feed the feed being subscribed to + * @param string $endpoint URL of the notification handler + * @param string $feed the feed being subscribed to * * @return boolean success */ @@ -61,10 +61,11 @@ class RSSCloudNotifier { $url = $endpoint . '?' . http_build_query($params); try { - $client = new HTTPClient(); + $client = new HTTPClient(); $response = $client->get($url); } catch (HTTP_Request2_Exception $e) { - common_log(LOG_INFO, 'RSSCloud plugin - failure testing notify handler ' . + common_log(LOG_INFO, + 'RSSCloud plugin - failure testing notify handler ' . $endpoint . ' - ' . $e->getMessage()); return false; } @@ -105,18 +106,19 @@ class RSSCloudNotifier { * HTTP POST a notification that a feed has been updated * ('ping the cloud'). * - * @param String $endpoint URL of the notification handler - * @param String $feed the feed being subscribed to + * @param String $endpoint URL of the notification handler + * @param String $feed the feed being subscribed to * * @return boolean success */ - function postUpdate($endpoint, $feed) { + function postUpdate($endpoint, $feed) + { $headers = array(); $postdata = array('url' => $feed); try { - $client = new HTTPClient(); + $client = new HTTPClient(); $response = $client->post($endpoint, $headers, $postdata); } catch (HTTP_Request2_Exception $e) { common_log(LOG_INFO, 'RSSCloud plugin - failure notifying ' . @@ -153,6 +155,7 @@ class RSSCloudNotifier { $profile->nickname . '.rss'; $cloudSub = new RSSCloudSubscription(); + $cloudSub->subscribed = $profile->id; if ($cloudSub->find()) { @@ -186,7 +189,8 @@ class RSSCloudNotifier { if ($failCnt == self::MAX_FAILURES) { common_log(LOG_INFO, - 'Deleting RSSCloud subcription (max failure count reached), profile: ' . + 'Deleting RSSCloud subcription ' . + '(max failure count reached), profile: ' . $cloudSub->subscribed . ' handler: ' . $cloudSub->url); @@ -209,7 +213,8 @@ class RSSCloudNotifier { } else { - common_debug('Updating failure count on RSSCloud subscription. ' . $failCnt); + common_debug('Updating failure count on RSSCloud subscription. ' . + $failCnt); $failCnt = $cloudSub->failures + 1; @@ -224,9 +229,11 @@ class RSSCloudNotifier { if (!$result) { common_log_db_error($cloudsub, 'UPDATE', __FILE__); - common_log(LOG_ERR, 'Could not update failure count on RSSCloud subscription'); + common_log(LOG_ERR, + 'Could not update failure ' . + 'count on RSSCloud subscription'); } - } + } } } diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index b1af9b59c..db2cdd74d 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -98,16 +98,20 @@ class RSSCloudPlugin extends Plugin * * Hook for RouterInitialized event. * + * @param Mapper &$m URL parser and mapper + * * @return boolean hook return */ function onRouterInitialized(&$m) { - $m->connect('/main/rsscloud/request_notify', array('action' => 'RSSCloudRequestNotify')); + $m->connect('/main/rsscloud/request_notify', + array('action' => 'RSSCloudRequestNotify')); // XXX: This is just for end-to-end testing. Uncomment if you need to pretend // to be a cloud hub for some reason. - // $m->connect('/main/rsscloud/notify', array('action' => 'LoggingAggregator')); + //$m->connect('/main/rsscloud/notify', + // array('action' => 'LoggingAggregator')); return true; } @@ -126,17 +130,18 @@ class RSSCloudPlugin extends Plugin { switch ($cls) { - case 'RSSCloudSubscription': - include_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudSubscription.php'); + case 'RSSCloudSubscription': + include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudSubscription.php'; return false; - case 'RSSCloudNotifier': - include_once(INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php'); + case 'RSSCloudNotifier': + include_once INSTALLDIR . '/plugins/RSSCloud/RSSCloudNotifier.php'; return false; - case 'RSSCloudRequestNotifyAction': - case 'LoggingAggregatorAction': - include_once(INSTALLDIR . '/plugins/RSSCloud/' . mb_substr($cls, 0, -6) . '.php'); + case 'RSSCloudRequestNotifyAction': + case 'LoggingAggregatorAction': + include_once INSTALLDIR . '/plugins/RSSCloud/' . + mb_substr($cls, 0, -6) . '.php'; return false; - default: + default: return true; } } @@ -145,7 +150,7 @@ class RSSCloudPlugin extends Plugin * Add a element to the RSS feed (after the rss * element is started). * - * @param Action $action + * @param Action $action the ApiAction * * @return void */ @@ -215,7 +220,7 @@ class RSSCloudPlugin extends Plugin /** * Determine whether the notice was locally created * - * @param Notice $notice + * @param Notice $notice the notice in question * * @return boolean locality */ @@ -233,7 +238,8 @@ class RSSCloudPlugin extends Plugin * @return boolean hook return */ - function onCheckSchema() { + function onCheckSchema() + { $schema = Schema::get(); $schema->ensureTable('rsscloud_subscription', array(new ColumnDef('subscribed', 'integer', @@ -248,8 +254,7 @@ class RSSCloudPlugin extends Plugin null, false, null, 'CURRENT_TIMESTAMP', 'on update CURRENT_TIMESTAMP') - ) - ); + )); return true; } diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index 9643bf432..a648efff1 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -56,9 +56,9 @@ class RSSCloudRequestNotifyAction extends Action { parent::prepare($args); - $this->ip = $_SERVER['REMOTE_ADDR']; - $this->port = $this->arg('port'); - $this->path = $this->arg('path'); + $this->ip = $_SERVER['REMOTE_ADDR']; + $this->port = $this->arg('port'); + $this->path = $this->arg('path'); if ($this->path[0] != '/') { $this->path = '/' . $this->path; @@ -68,7 +68,7 @@ class RSSCloudRequestNotifyAction extends Action $this->procedure = $this->arg('notifyProcedure'); $this->domain = $this->arg('domain'); - $this->feeds = $this->getFeeds(); + $this->feeds = $this->getFeeds(); return true; } @@ -124,7 +124,8 @@ class RSSCloudRequestNotifyAction extends Action } if (empty($this->feeds)) { - $msg = 'You must provide at least one valid profile feed url (url1, url2, url3 ... urlN).'; + $msg = 'You must provide at least one valid profile feed url ' . + '(url1, url2, url3 ... urlN).'; $this->showResult(false, $msg); return; } @@ -195,7 +196,7 @@ class RSSCloudRequestNotifyAction extends Action { $feeds = array(); - while (list($key, $feed) = each ($this->args)) { + while (list($key, $feed) = each($this->args)) { if (preg_match('/^url\d*$/', $key)) { $feeds[] = $feed; } @@ -251,7 +252,7 @@ class RSSCloudRequestNotifyAction extends Action } else { return 'http://' . $this->ip . ':' . $this->port . $this->path; } - } + } /** * Uses the nickname part of the subscribed feed URL to figure out @@ -267,7 +268,7 @@ class RSSCloudRequestNotifyAction extends Action { // We only do profile feeds - $path = common_path('api/statuses/user_timeline/'); + $path = common_path('api/statuses/user_timeline/'); $valid = '%^' . $path . '(?.*)\.rss$%'; if (preg_match($valid, $feed, $matches)) { @@ -283,7 +284,7 @@ class RSSCloudRequestNotifyAction extends Action /** * Save an RSSCloud subscription * - * @param $feed a valid profile feed + * @param string $feed a valid profile feed * * @return boolean success result */ @@ -329,8 +330,9 @@ class RSSCloudRequestNotifyAction extends Action function showResult($success, $msg) { $this->startXML(); - $this->elementStart('notifyResult', array('success' => ($success) ? 'true' : 'false', - 'msg' => $msg)); + $this->elementStart('notifyResult', + array('success' => ($success) ? 'true' : 'false', + 'msg' => $msg)); $this->endXML(); } -- cgit v1.2.3-54-g00ecf From fd33865258644d5f41341e8efa239e2e4d064897 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 29 Dec 2009 03:52:02 +0000 Subject: Fix subscription path in link element --- plugins/RSSCloud/RSSCloudPlugin.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index db2cdd74d..4b9812a47 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -70,7 +70,7 @@ class RSSCloudPlugin extends Plugin // set defaults - $local_server = parse_url(common_path('/main/rsscloud/request_notify')); + $local_server = parse_url(common_path('main/rsscloud/request_notify')); if (empty($this->domain)) { $this->domain = $local_server['host']; @@ -81,7 +81,7 @@ class RSSCloudPlugin extends Plugin } if (empty($this->path)) { - $this->path = '/main/rsscloud/request_notify'; + $this->path = $local_server['path']; } if (empty($this->funct)) { -- cgit v1.2.3-54-g00ecf From c95114ea02757cf114ae34f33c9a7cacee49a8da Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 6 Jan 2010 07:44:34 +0000 Subject: Some better log msgs --- plugins/RSSCloud/README | 5 +++-- plugins/RSSCloud/RSSCloudRequestNotify.php | 17 ++++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/plugins/RSSCloud/README b/plugins/RSSCloud/README index 8fd281aab..1237e3e0e 100644 --- a/plugins/RSSCloud/README +++ b/plugins/RSSCloud/README @@ -4,7 +4,8 @@ http://SITE/PATH/api/statuses/user_timeline/USERNAME.rss). When the plugin is enabled, StatusNet acts as both the publisher and hub ('writer' and 'cloud' in RSSCloud parlance), but only for local StatusNet feeds. It's not possible to use it as a general purpose hub -- for instance you can't -subscribe and get updates to a Wordpress feed from StatusNet. +subscribe and get updates to a Wordpress feed from StatusNet using this +plugin. To use the plugin, add the following to your config.php: @@ -33,7 +34,7 @@ Notes ----- - Again, only RSS 2.0 profile feeds may be subscribed to, and they have - be the ones with user names in them, like: + to be the ones with user names in them, like: http://SITE/PATH/api/statuses/user_timeline/USERNAME.rss - Subscriptions are deleted after three notification failures in a row (not sure this is optimal). diff --git a/plugins/RSSCloud/RSSCloudRequestNotify.php b/plugins/RSSCloud/RSSCloudRequestNotify.php index a648efff1..d76c08d37 100644 --- a/plugins/RSSCloud/RSSCloudRequestNotify.php +++ b/plugins/RSSCloud/RSSCloudRequestNotify.php @@ -137,6 +137,11 @@ class RSSCloudRequestNotifyAction extends Action foreach ($this->feeds as $feed) { if (!$this->validateFeed($feed)) { + + $nh = $this->getNotifyUrl(); + common_log(LOG_WARNING, + "RSSCloud plugin - $nh tried to subscribe to invalid feed: $feed"); + $msg = 'Feed subscription failed - Not a valid feed.'; $this->showResult(false, $msg); return; @@ -216,8 +221,6 @@ class RSSCloudRequestNotifyAction extends Action function testNotificationHandler($feed) { - common_debug("RSSCloudPlugin - testNotificationHandler()"); - $notifyUrl = $this->getNotifyUrl(); $notifier = new RSSCloudNotifier(); @@ -226,12 +229,13 @@ class RSSCloudRequestNotifyAction extends Action // 'domain' param set, so we have to use GET and send a challenge - common_log(LOG_INFO, 'Testing notification handler with challenge: ' . + common_log(LOG_INFO, + 'RSSCloud plugin - Testing notification handler with challenge: ' . $notifyUrl); return $notifier->challenge($notifyUrl, $feed); } else { - common_log(LOG_INFO, 'Testing notification handler: ' . + common_log(LOG_INFO, 'RSSCloud plugin - Testing notification handler: ' . $notifyUrl); return $notifier->postUpdate($notifyUrl, $feed); @@ -298,7 +302,8 @@ class RSSCloudRequestNotifyAction extends Action $sub = RSSCloudSubscription::getSubscription($user->id, $notifyUrl); if ($sub) { - common_debug("Already subscribed to that!"); + common_log(LOG_INFO, "RSSCloud plugin - $notifyUrl refreshed subscription" . + " to user $user->nickname (id: $user->id)."); } else { $sub = new RSSCloudSubscription(); @@ -312,6 +317,8 @@ class RSSCloudRequestNotifyAction extends Action return false; } + common_log(LOG_INFO, "RSSCloud plugin - $notifyUrl subscribed" . + " to user $user->nickname (id: $user->id)"); } return true; -- cgit v1.2.3-54-g00ecf From d7e2a2949869dfc1b84d96259471868e75fc7899 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 6 Jan 2010 11:31:06 +0100 Subject: Removed unnecessary internal style --- plugins/Recaptcha/RecaptchaPlugin.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/Recaptcha/RecaptchaPlugin.php b/plugins/Recaptcha/RecaptchaPlugin.php index db118dbb8..3665214f8 100644 --- a/plugins/Recaptcha/RecaptchaPlugin.php +++ b/plugins/Recaptcha/RecaptchaPlugin.php @@ -62,9 +62,8 @@ class RecaptchaPlugin extends Plugin function onEndRegistrationFormData($action) { - $action->style('#recaptcha_area{float:left;}'); $action->elementStart('li'); - $action->raw(''); + $action->raw(''); if($this->checkssl() === true) { $action->raw(recaptcha_get_html($this->public_key), null, true); } else { -- cgit v1.2.3-54-g00ecf From fe181002814359620e962454444917580ee51970 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 6 Jan 2010 18:02:46 +0000 Subject: Uses a fixed height for header to control the layout for notice form in Cloudy --- theme/cloudy/css/display.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 92d544977..23e5c4ec6 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -242,6 +242,7 @@ margin-right:-47px; #header { width:100%; +height:10.5em; position:relative; float:left; padding-top:18px; @@ -1522,7 +1523,7 @@ min-width:0; #useradminpanel #content, #pathsadminpanel #content, #adminprofileflag #content { -padding-top:170px; +padding-top:12.5em; } #profilesettings #form_notice, -- cgit v1.2.3-54-g00ecf From aa623f60df7f47a00c80a254aeb5b3f1365466bd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 6 Jan 2010 18:08:43 +0000 Subject: Fixes layout for attachment page in Cloudy theme --- theme/cloudy/css/display.css | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 23e5c4ec6..6b4408602 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1518,11 +1518,12 @@ min-width:0; #subscribers.user_in #content, #showgroup.user_in #content, #conversation.user_in #content, -#siteadminpanel #content, -#designadminpanel #content, -#useradminpanel #content, -#pathsadminpanel #content, -#adminprofileflag #content { +#attachment.user_in #content, +#siteadminpanel.user_in #content, +#designadminpanel.user_in #content, +#useradminpanel.user_in #content, +#pathsadminpanel.user_in #content, +#adminprofileflag.user_in #content { padding-top:12.5em; } -- cgit v1.2.3-54-g00ecf From 9a7a2f2ff472f005d7cb9cd9e5ea5c59dc32dfeb Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Wed, 6 Jan 2010 18:12:13 +0000 Subject: Updated notice-option width in Cloudy theme --- theme/cloudy/css/display.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 6b4408602..a27bd74b8 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1001,7 +1001,7 @@ float:left; font-size:0.95em; margin-left:59px; min-width:60%; -max-width:66%; +max-width:62%; } #showstream .notice div.entry-content, #shownotice .notice div.entry-content { -- cgit v1.2.3-54-g00ecf From b93244395f2c5643ae5e1be1e4e1d652c6d654c1 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 6 Jan 2010 11:10:33 -0800 Subject: Fix for broken profile flag admin UI: delete stray flag entries when users are deleted so broken entries don't litter the lookups. * added ProfileDeleteRelated event to match UserDeleteRelated, to allow plugins to add extra related tables on profile deletion * UserFlagPlugin: deleting flags when target profile is deleted * UserFlagPlugin: deleting flags when flagging user is deleted * UserFlagPlugin: fix for autoloader -- class names are case-insensitive. We may get lowercase class names coming in at times, such as when creating DB objects programatically from a table name. Note that any already-existing bogus entries need to be removed from the database: select * from user_flag_profile where (select id from profile where id=profile_id) is null; select * from user_flag_profile where (select id from user where id=user_id) is null; --- classes/Profile.php | 1 + plugins/UserFlag/UserFlagPlugin.php | 51 +++++++++++++++++++++++++++++++------ 2 files changed, 44 insertions(+), 8 deletions(-) diff --git a/classes/Profile.php b/classes/Profile.php index 03196447b..25d908dbf 100644 --- a/classes/Profile.php +++ b/classes/Profile.php @@ -504,6 +504,7 @@ class Profile extends Memcached_DataObject 'Reply', 'Group_member', ); + Event::handle('ProfileDeleteRelated', array($this, &$related)); foreach ($related as $cls) { $inst = new $cls(); diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index 602a5bfa8..a33869c19 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -102,20 +102,20 @@ class UserFlagPlugin extends Plugin function onAutoload($cls) { - switch ($cls) + switch (strtolower($cls)) { - case 'FlagprofileAction': - case 'AdminprofileflagAction': - case 'ClearflagAction': + case 'flagprofileaction': + case 'adminprofileflagaction': + case 'clearflagaction': include_once INSTALLDIR.'/plugins/UserFlag/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; return false; - case 'FlagProfileForm': - case 'ClearFlagForm': + case 'flagprofileform': + case 'clearflagform': include_once INSTALLDIR.'/plugins/UserFlag/' . strtolower($cls . '.php'); return false; - case 'User_flag_profile': - include_once INSTALLDIR.'/plugins/UserFlag/'.$cls.'.php'; + case 'user_flag_profile': + include_once INSTALLDIR.'/plugins/UserFlag/'.ucfirst(strtolower($cls)).'.php'; return false; default: return true; @@ -258,4 +258,39 @@ class UserFlagPlugin extends Plugin } return true; } + + /** + * Ensure that flag entries for a profile are deleted + * along with the profile when deleting users. + * This prevents breakage of the admin profile flag UI. + * + * @param Profile $profile + * @param array &$related list of related tables; entries + * with matching profile_id will be deleted. + * + * @return boolean hook result + */ + + function onProfileDeleteRelated($profile, &$related) + { + $related[] = 'user_flag_profile'; + return true; + } + + /** + * Ensure that flag entries created by a user are deleted + * when that user gets deleted. + * + * @param User $user + * @param array &$related list of related tables; entries + * with matching user_id will be deleted. + * + * @return boolean hook result + */ + + function onUserDeleteRelated($user, &$related) + { + $related[] = 'user_flag_profile'; + return true; + } } -- cgit v1.2.3-54-g00ecf From 6f5b765c97c8616e4a79719bfe835cb03dc0a236 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 6 Jan 2010 13:08:56 -0800 Subject: suppress notice for undefined prompt variable when console.php is used from non-interactive terminal --- scripts/console.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/console.php b/scripts/console.php index 329caf472..8b62a3a96 100755 --- a/scripts/console.php +++ b/scripts/console.php @@ -128,6 +128,8 @@ function console_help() if (CONSOLE_INTERACTIVE) { print "StatusNet interactive PHP console... type ctrl+D or enter 'exit' to exit.\n"; $prompt = common_config('site', 'name') . '> '; +} else { + $prompt = ''; } while (!feof(STDIN)) { $line = read_input_line($prompt); -- cgit v1.2.3-54-g00ecf From 85554d0840642f4c1b47b50202dd648db565781c Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 6 Jan 2010 13:23:39 -0800 Subject: Rearrange Memcached_DataObject::staticGet() to avoid "only variables can be passed by reference" warnings when DB lookup fails and we return false. (We need to keep it returning a reference because the extlib parent class is stuck in PHP 4-land and uses references everywhere, including this function's return value. Yuck!) Also changed pkeyGet to drop the reference, since it doesn't have an upstream equivalent. --- classes/Memcached_DataObject.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index d11bd6368..04f75b775 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -90,17 +90,16 @@ class Memcached_DataObject extends DB_DataObject unset($i); } $i = Memcached_DataObject::getcached($cls, $k, $v); - if ($i !== false) { // false == cache miss - return $i; - } else { + if ($i === false) { // false == cache miss $i = DB_DataObject::factory($cls); if (empty($i)) { - return false; + $i = false; + return $i; } $result = $i->get($k, $v); if ($result) { + // Hit! $i->encache(); - return $i; } else { // save the fact that no such row exists $c = self::memcache(); @@ -108,12 +107,16 @@ class Memcached_DataObject extends DB_DataObject $ck = self::cachekey($cls, $k, $v); $c->set($ck, null); } - return false; + $i = false; } } + return $i; } - function &pkeyGet($cls, $kv) + /** + * @fixme Should this return false on lookup fail to match staticGet? + */ + function pkeyGet($cls, $kv) { $i = Memcached_DataObject::multicache($cls, $kv); if ($i !== false) { // false == cache miss -- cgit v1.2.3-54-g00ecf From 013e6dfdd481470cc02994b6db58a387a95016ca Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 6 Jan 2010 13:40:28 -0800 Subject: Don't output notices from deleted users. --- actions/twitapisearchatom.php | 9 ++++++++- lib/jsonsearchresultslist.php | 10 ++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/actions/twitapisearchatom.php b/actions/twitapisearchatom.php index 1cb8d7efe..baed2a0c7 100644 --- a/actions/twitapisearchatom.php +++ b/actions/twitapisearchatom.php @@ -208,7 +208,14 @@ class TwitapisearchatomAction extends ApiAction $this->showFeed(); foreach ($notices as $n) { - $this->showEntry($n); + + $profile = $n->getProfile(); + + // Don't show notices from deleted users + + if (!empty($profile)) { + $this->showEntry($n); + } } $this->endAtom(); diff --git a/lib/jsonsearchresultslist.php b/lib/jsonsearchresultslist.php index 569bfa873..0d72ddf7a 100644 --- a/lib/jsonsearchresultslist.php +++ b/lib/jsonsearchresultslist.php @@ -105,8 +105,14 @@ class JSONSearchResultsList break; } - $item = new ResultItem($this->notice); - array_push($this->results, $item); + $profile = $this->notice->getProfile(); + + // Don't show notices from deleted users + + if (!empty($profile)) { + $item = new ResultItem($this->notice); + array_push($this->results, $item); + } } $time_end = microtime(true); -- cgit v1.2.3-54-g00ecf From 208bab32b7f9784701c538217d0c1c2779a22146 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 16:48:24 -0500 Subject: Remove erroneous call to parent::onInitializePlugin() --- plugins/LdapAuthorization/LdapAuthorizationPlugin.php | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php index 7673e61ef..e5e22c0dd 100644 --- a/plugins/LdapAuthorization/LdapAuthorizationPlugin.php +++ b/plugins/LdapAuthorization/LdapAuthorizationPlugin.php @@ -52,7 +52,6 @@ class LdapAuthorizationPlugin extends AuthorizationPlugin public $attributes = array(); function onInitializePlugin(){ - parent::onInitializePlugin(); if(!isset($this->host)){ throw new Exception("must specify a host"); } -- cgit v1.2.3-54-g00ecf From 541053e84b2754e0d2c8b735c624383b6a126122 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 17:08:01 -0500 Subject: The structure return by parse_url is an associative array, not an object. --- lib/htmloutputter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/htmloutputter.php b/lib/htmloutputter.php index 2091c6e2c..31660ce95 100644 --- a/lib/htmloutputter.php +++ b/lib/htmloutputter.php @@ -352,7 +352,7 @@ class HTMLOutputter extends XMLOutputter { if(Event::handle('StartScriptElement', array($this,&$src,&$type))) { $url = parse_url($src); - if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment)) + if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment'])) { $src = common_path($src) . '?version=' . STATUSNET_VERSION; } -- cgit v1.2.3-54-g00ecf From 20144285ca610812abe09018ee208e12e38a966a Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Wed, 6 Jan 2010 17:13:09 -0500 Subject: The structure return by parse_url is an associative array, not an object. --- plugins/Minify/MinifyPlugin.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Minify/MinifyPlugin.php b/plugins/Minify/MinifyPlugin.php index 71fade19a..718bfd163 100644 --- a/plugins/Minify/MinifyPlugin.php +++ b/plugins/Minify/MinifyPlugin.php @@ -84,7 +84,7 @@ class MinifyPlugin extends Plugin function onStartScriptElement($action,&$src,&$type) { $url = parse_url($src); - if( empty($url->scheme) && empty($url->host) && empty($url->query) && empty($url->fragment)) + if( empty($url['scheme']) && empty($url['host']) && empty($url['query']) && empty($url['fragment'])) { $src = $this->minifyUrl($src); } -- cgit v1.2.3-54-g00ecf From 4e2acd153b4e3208e24464478098fac458a13590 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 6 Jan 2010 14:28:40 -0800 Subject: ...and drop the unnecessary &reference from child class pkeyGet() overrides. --- classes/Avatar.php | 2 +- classes/Config.php | 2 +- classes/Fave.php | 2 +- classes/File_to_post.php | 2 +- classes/Group_block.php | 2 +- classes/Group_inbox.php | 2 +- classes/Group_member.php | 2 +- classes/Notice_inbox.php | 2 +- classes/Notice_tag.php | 2 +- classes/Profile_role.php | 2 +- classes/Queue_item.php | 2 +- classes/Subscription.php | 2 +- plugins/OpenID/User_openid_trustroot.php | 2 +- plugins/UserFlag/User_flag_profile.php | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/classes/Avatar.php b/classes/Avatar.php index 8d6424e8b..91bde0f04 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -37,7 +37,7 @@ class Avatar extends Memcached_DataObject } } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Avatar', $kv); } diff --git a/classes/Config.php b/classes/Config.php index 6d914ca1f..43b99587f 100644 --- a/classes/Config.php +++ b/classes/Config.php @@ -120,7 +120,7 @@ class Config extends Memcached_DataObject return $result; } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Config', $kv); } diff --git a/classes/Fave.php b/classes/Fave.php index 11e876ff1..8113c8e16 100644 --- a/classes/Fave.php +++ b/classes/Fave.php @@ -32,7 +32,7 @@ class Fave extends Memcached_DataObject return $fave; } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Fave', $kv); } diff --git a/classes/File_to_post.php b/classes/File_to_post.php index e3db91b20..72a42b088 100644 --- a/classes/File_to_post.php +++ b/classes/File_to_post.php @@ -62,7 +62,7 @@ class File_to_post extends Memcached_DataObject } } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('File_to_post', $kv); } diff --git a/classes/Group_block.php b/classes/Group_block.php index de2cf5f6e..9f4d59295 100644 --- a/classes/Group_block.php +++ b/classes/Group_block.php @@ -40,7 +40,7 @@ class Group_block extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Group_block', $kv); } diff --git a/classes/Group_inbox.php b/classes/Group_inbox.php index 1af7439f7..2a0787e38 100644 --- a/classes/Group_inbox.php +++ b/classes/Group_inbox.php @@ -20,7 +20,7 @@ class Group_inbox extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Group_inbox', $kv); } diff --git a/classes/Group_member.php b/classes/Group_member.php index 3c23a991f..069b2c7a1 100644 --- a/classes/Group_member.php +++ b/classes/Group_member.php @@ -21,7 +21,7 @@ class Group_member extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Group_member', $kv); } diff --git a/classes/Notice_inbox.php b/classes/Notice_inbox.php index d3ddad656..e350e6e2f 100644 --- a/classes/Notice_inbox.php +++ b/classes/Notice_inbox.php @@ -101,7 +101,7 @@ class Notice_inbox extends Memcached_DataObject return $ids; } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Notice_inbox', $kv); } diff --git a/classes/Notice_tag.php b/classes/Notice_tag.php index 02740280f..79231f0b0 100644 --- a/classes/Notice_tag.php +++ b/classes/Notice_tag.php @@ -96,7 +96,7 @@ class Notice_tag extends Memcached_DataObject } } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Notice_tag', $kv); } diff --git a/classes/Profile_role.php b/classes/Profile_role.php index afa7fb74e..74aca3730 100644 --- a/classes/Profile_role.php +++ b/classes/Profile_role.php @@ -43,7 +43,7 @@ class Profile_role extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Profile_role', $kv); } diff --git a/classes/Queue_item.php b/classes/Queue_item.php index 295c321b5..9c673540d 100644 --- a/classes/Queue_item.php +++ b/classes/Queue_item.php @@ -55,7 +55,7 @@ class Queue_item extends Memcached_DataObject return null; } - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Queue_item', $kv); } diff --git a/classes/Subscription.php b/classes/Subscription.php index fedfd5f19..faf1331cd 100644 --- a/classes/Subscription.php +++ b/classes/Subscription.php @@ -46,7 +46,7 @@ class Subscription extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('Subscription', $kv); } diff --git a/plugins/OpenID/User_openid_trustroot.php b/plugins/OpenID/User_openid_trustroot.php index 44288945b..0b411b8f7 100644 --- a/plugins/OpenID/User_openid_trustroot.php +++ b/plugins/OpenID/User_openid_trustroot.php @@ -22,7 +22,7 @@ class User_openid_trustroot extends Memcached_DataObject /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('User_openid_trustroot', $kv); } diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php index 658259452..063ed04ea 100644 --- a/plugins/UserFlag/User_flag_profile.php +++ b/plugins/UserFlag/User_flag_profile.php @@ -97,7 +97,7 @@ class User_flag_profile extends Memcached_DataObject * @return User_flag_profile found object or null */ - function &pkeyGet($kv) + function pkeyGet($kv) { return Memcached_DataObject::pkeyGet('User_flag_profile', $kv); } -- cgit v1.2.3-54-g00ecf From 5d9a2eb17e3f6e3bc73b5aa80625a365761b6689 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 6 Jan 2010 14:42:46 -0800 Subject: Ticket 2107: remove "not implemented" items from sms/xmpp help; nobody likes being told what they can't do! Also broke up the localized help message into line-by-line pieces to ease translation maintenance. --- doc-src/sms | 11 +-------- lib/command.php | 74 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 38 insertions(+), 47 deletions(-) diff --git a/doc-src/sms b/doc-src/sms index 1a3064318..2c20921c3 100644 --- a/doc-src/sms +++ b/doc-src/sms @@ -56,13 +56,4 @@ You can use the following commands with %%site.name%%. * sub <nickname> - same as 'follow' * unsub <nickname> - same as 'leave' * last <nickname> - same as 'get' -* on <nickname> - not yet implemented. -* off <nickname> - not yet implemented. -* nudge <nickname> - not yet implemented. -* invite <phone number> - not yet implemented. -* track <word> - not yet implemented. -* untrack <word> - not yet implemented. -* track off - not yet implemented. -* untrack all - not yet implemented. -* tracks - not yet implemented. -* tracking - not yet implemented. +* nudge <nickname> - remind a user to update. diff --git a/lib/command.php b/lib/command.php index 67140c348..ad2e0bb97 100644 --- a/lib/command.php +++ b/lib/command.php @@ -742,42 +742,42 @@ class HelpCommand extends Command function execute($channel) { $channel->output($this->user, - _("Commands:\n". - "on - turn on notifications\n". - "off - turn off notifications\n". - "help - show this help\n". - "follow - subscribe to user\n". - "groups - lists the groups you have joined\n". - "subscriptions - list the people you follow\n". - "subscribers - list the people that follow you\n". - "leave - unsubscribe from user\n". - "d - direct message to user\n". - "get - get last notice from user\n". - "whois - get profile info on user\n". - "fav - add user's last notice as a 'fave'\n". - "fav # - add notice with the given id as a 'fave'\n". - "repeat # - repeat a notice with a given id\n". - "repeat - repeat the last notice from user\n". - "reply # - reply to notice with a given id\n". - "reply - reply to the last notice from user\n". - "join - join group\n". - "login - Get a link to login to the web interface\n". - "drop - leave group\n". - "stats - get your stats\n". - "stop - same as 'off'\n". - "quit - same as 'off'\n". - "sub - same as 'follow'\n". - "unsub - same as 'leave'\n". - "last - same as 'get'\n". - "on - not yet implemented.\n". - "off - not yet implemented.\n". - "nudge - remind a user to update.\n". - "invite - not yet implemented.\n". - "track - not yet implemented.\n". - "untrack - not yet implemented.\n". - "track off - not yet implemented.\n". - "untrack all - not yet implemented.\n". - "tracks - not yet implemented.\n". - "tracking - not yet implemented.\n")); + _("Commands:")."\n". + _("on - turn on notifications")."\n". + _("off - turn off notifications")."\n". + _("help - show this help")."\n". + _("follow - subscribe to user")."\n". + _("groups - lists the groups you have joined")."\n". + _("subscriptions - list the people you follow")."\n". + _("subscribers - list the people that follow you")."\n". + _("leave - unsubscribe from user")."\n". + _("d - direct message to user")."\n". + _("get - get last notice from user")."\n". + _("whois - get profile info on user")."\n". + _("fav - add user's last notice as a 'fave'")."\n". + _("fav # - add notice with the given id as a 'fave'")."\n". + _("repeat # - repeat a notice with a given id")."\n". + _("repeat - repeat the last notice from user")."\n". + _("reply # - reply to notice with a given id")."\n". + _("reply - reply to the last notice from user")."\n". + _("join - join group")."\n". + #_("login - Get a link to login to the web interface")."\n". + _("drop - leave group")."\n". + _("stats - get your stats")."\n". + _("stop - same as 'off'")."\n". + _("quit - same as 'off'")."\n". + _("sub - same as 'follow'")."\n". + _("unsub - same as 'leave'")."\n". + _("last - same as 'get'")."\n". + #_("on - not yet implemented.")."\n". + #_("off - not yet implemented.")."\n". + _("nudge - remind a user to update.")."\n"); + #_("invite - not yet implemented.")."\n". + #_("track - not yet implemented.")."\n". + #_("untrack - not yet implemented.")."\n". + #_("track off - not yet implemented.")."\n". + #_("untrack all - not yet implemented.")."\n". + #_("tracks - not yet implemented.")."\n". + #_("tracking - not yet implemented.")."\n" } } -- cgit v1.2.3-54-g00ecf From a1c3a2d3a12c1667492e4107007b31ec3a1f9c7b Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Wed, 6 Jan 2010 16:21:29 -0800 Subject: Fix broken API method /api/statusnet/groups/leave/:id.:format --- actions/apigroupleave.php | 8 ++++---- actions/leavegroup.php | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/actions/apigroupleave.php b/actions/apigroupleave.php index 514a3a557..5627bfc14 100644 --- a/actions/apigroupleave.php +++ b/actions/apigroupleave.php @@ -108,7 +108,7 @@ class ApiGroupLeaveAction extends ApiAuthAction $member = new Group_member(); $member->group_id = $this->group->id; - $member->profile_id = $this->auth->id; + $member->profile_id = $this->auth_user->id; if (!$member->find(true)) { $this->serverError(_('You are not a member of this group.')); @@ -118,12 +118,12 @@ class ApiGroupLeaveAction extends ApiAuthAction $result = $member->delete(); if (!$result) { - common_log_db_error($member, 'INSERT', __FILE__); + common_log_db_error($member, 'DELETE', __FILE__); $this->serverError( sprintf( - _('Could not remove user %s to group %s.'), + _('Could not remove user %s from group %s.'), $this->user->nickname, - $this->$group->nickname + $this->group->nickname ) ); return; diff --git a/actions/leavegroup.php b/actions/leavegroup.php index 08fce1509..90c85e1a4 100644 --- a/actions/leavegroup.php +++ b/actions/leavegroup.php @@ -123,8 +123,8 @@ class LeavegroupAction extends Action $result = $member->delete(); if (!$result) { - common_log_db_error($member, 'INSERT', __FILE__); - $this->serverError(sprintf(_('Could not remove user %s to group %s'), + common_log_db_error($member, 'DELETE', __FILE__); + $this->serverError(sprintf(_('Could not remove user %s from group %s'), $cur->nickname, $this->group->nickname)); } -- cgit v1.2.3-54-g00ecf From e50410683fa29dd424f893dd302d835828e0711f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 6 Jan 2010 16:34:18 -1000 Subject: only encache new objects when insert was successful --- classes/Memcached_DataObject.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index d11bd6368..15ca34821 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -143,7 +143,9 @@ class Memcached_DataObject extends DB_DataObject function insert() { $result = parent::insert(); - $this->encache(); // in case of cached negative lookups + if ($result) { + $this->encache(); // in case of cached negative lookups + } return $result; } -- cgit v1.2.3-54-g00ecf From e1c7851a067d4d8201126816884b9992720010f5 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 6 Jan 2010 23:22:49 -0800 Subject: pass through keys() as keyTypes() for UserFlag --- plugins/UserFlag/User_flag_profile.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/UserFlag/User_flag_profile.php b/plugins/UserFlag/User_flag_profile.php index 658259452..6bf47071b 100644 --- a/plugins/UserFlag/User_flag_profile.php +++ b/plugins/UserFlag/User_flag_profile.php @@ -89,6 +89,17 @@ class User_flag_profile extends Memcached_DataObject return array('profile_id' => 'N', 'user_id' => 'N'); } + /** + * return key definitions for DB_DataObject + * + * @return array key definitions + */ + + function keyTypes() + { + return $this->keys(); + } + /** * Get a single object with multiple keys * -- cgit v1.2.3-54-g00ecf From f4fa785fb7cf6f222f77ad81f6a1e50e5af7fdf3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 6 Jan 2010 23:24:24 -0800 Subject: Revert "Ticket 2107: remove "not implemented" items from sms/xmpp help; nobody likes being told what they can't do!" This reverts commit 5d9a2eb17e3f6e3bc73b5aa80625a365761b6689. These are commands that are/were implemented by Twitter, and we don't (yet) implemented. People will be looking for that information. --- doc-src/sms | 11 ++++++++- lib/command.php | 74 ++++++++++++++++++++++++++++----------------------------- 2 files changed, 47 insertions(+), 38 deletions(-) diff --git a/doc-src/sms b/doc-src/sms index 2c20921c3..1a3064318 100644 --- a/doc-src/sms +++ b/doc-src/sms @@ -56,4 +56,13 @@ You can use the following commands with %%site.name%%. * sub <nickname> - same as 'follow' * unsub <nickname> - same as 'leave' * last <nickname> - same as 'get' -* nudge <nickname> - remind a user to update. +* on <nickname> - not yet implemented. +* off <nickname> - not yet implemented. +* nudge <nickname> - not yet implemented. +* invite <phone number> - not yet implemented. +* track <word> - not yet implemented. +* untrack <word> - not yet implemented. +* track off - not yet implemented. +* untrack all - not yet implemented. +* tracks - not yet implemented. +* tracking - not yet implemented. diff --git a/lib/command.php b/lib/command.php index ad2e0bb97..67140c348 100644 --- a/lib/command.php +++ b/lib/command.php @@ -742,42 +742,42 @@ class HelpCommand extends Command function execute($channel) { $channel->output($this->user, - _("Commands:")."\n". - _("on - turn on notifications")."\n". - _("off - turn off notifications")."\n". - _("help - show this help")."\n". - _("follow - subscribe to user")."\n". - _("groups - lists the groups you have joined")."\n". - _("subscriptions - list the people you follow")."\n". - _("subscribers - list the people that follow you")."\n". - _("leave - unsubscribe from user")."\n". - _("d - direct message to user")."\n". - _("get - get last notice from user")."\n". - _("whois - get profile info on user")."\n". - _("fav - add user's last notice as a 'fave'")."\n". - _("fav # - add notice with the given id as a 'fave'")."\n". - _("repeat # - repeat a notice with a given id")."\n". - _("repeat - repeat the last notice from user")."\n". - _("reply # - reply to notice with a given id")."\n". - _("reply - reply to the last notice from user")."\n". - _("join - join group")."\n". - #_("login - Get a link to login to the web interface")."\n". - _("drop - leave group")."\n". - _("stats - get your stats")."\n". - _("stop - same as 'off'")."\n". - _("quit - same as 'off'")."\n". - _("sub - same as 'follow'")."\n". - _("unsub - same as 'leave'")."\n". - _("last - same as 'get'")."\n". - #_("on - not yet implemented.")."\n". - #_("off - not yet implemented.")."\n". - _("nudge - remind a user to update.")."\n"); - #_("invite - not yet implemented.")."\n". - #_("track - not yet implemented.")."\n". - #_("untrack - not yet implemented.")."\n". - #_("track off - not yet implemented.")."\n". - #_("untrack all - not yet implemented.")."\n". - #_("tracks - not yet implemented.")."\n". - #_("tracking - not yet implemented.")."\n" + _("Commands:\n". + "on - turn on notifications\n". + "off - turn off notifications\n". + "help - show this help\n". + "follow - subscribe to user\n". + "groups - lists the groups you have joined\n". + "subscriptions - list the people you follow\n". + "subscribers - list the people that follow you\n". + "leave - unsubscribe from user\n". + "d - direct message to user\n". + "get - get last notice from user\n". + "whois - get profile info on user\n". + "fav - add user's last notice as a 'fave'\n". + "fav # - add notice with the given id as a 'fave'\n". + "repeat # - repeat a notice with a given id\n". + "repeat - repeat the last notice from user\n". + "reply # - reply to notice with a given id\n". + "reply - reply to the last notice from user\n". + "join - join group\n". + "login - Get a link to login to the web interface\n". + "drop - leave group\n". + "stats - get your stats\n". + "stop - same as 'off'\n". + "quit - same as 'off'\n". + "sub - same as 'follow'\n". + "unsub - same as 'leave'\n". + "last - same as 'get'\n". + "on - not yet implemented.\n". + "off - not yet implemented.\n". + "nudge - remind a user to update.\n". + "invite - not yet implemented.\n". + "track - not yet implemented.\n". + "untrack - not yet implemented.\n". + "track off - not yet implemented.\n". + "untrack all - not yet implemented.\n". + "tracks - not yet implemented.\n". + "tracking - not yet implemented.\n")); } } -- cgit v1.2.3-54-g00ecf From b2bab7d7caddd7e57974e07c48663e1422853ebe Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 6 Jan 2010 23:34:59 -0800 Subject: fixup keytypes so it returns the types no matter what kind of class it is --- classes/Memcached_DataObject.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/classes/Memcached_DataObject.php b/classes/Memcached_DataObject.php index 4e3cc5678..400b05f97 100644 --- a/classes/Memcached_DataObject.php +++ b/classes/Memcached_DataObject.php @@ -194,6 +194,17 @@ class Memcached_DataObject extends DB_DataObject function keyTypes() { + // ini-based classes return number-indexed arrays. handbuilt + // classes return column => keytype. Make this uniform. + + $keys = $this->keys(); + + $keyskeys = array_keys($keys); + + if (is_string($keyskeys[0])) { + return $keys; + } + global $_DB_DATAOBJECT; if (!isset($_DB_DATAOBJECT['INI'][$this->_database][$this->__table."__keys"])) { $this->databaseStructure(); -- cgit v1.2.3-54-g00ecf From 79751d6b23cb943d389f3330a137636224db01aa Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 7 Jan 2010 09:49:48 +0000 Subject: Cloudy layout fix for public and showstream pages when user is not signed in --- theme/cloudy/css/display.css | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index a27bd74b8..4ba4d31c2 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1554,6 +1554,15 @@ padding-top:12.5em; display:none; } +#public #core, +#showstream #core { +margin-top:10em; +} +#public.user_in #core, +#showstream.user_in #core { +margin-top:0; +} + #jOverlayContent #core #content { padding-top:11px; } -- cgit v1.2.3-54-g00ecf From d17c2d8ebacb799e7dd6bebe249df765ea918880 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Thu, 7 Jan 2010 09:53:01 +0000 Subject: Don't output form_notice in admin panel pages in Cloudy --- theme/cloudy/css/display.css | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 4ba4d31c2..6986222bb 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -1518,12 +1518,7 @@ min-width:0; #subscribers.user_in #content, #showgroup.user_in #content, #conversation.user_in #content, -#attachment.user_in #content, -#siteadminpanel.user_in #content, -#designadminpanel.user_in #content, -#useradminpanel.user_in #content, -#pathsadminpanel.user_in #content, -#adminprofileflag.user_in #content { +#attachment.user_in #content { padding-top:12.5em; } @@ -1550,7 +1545,12 @@ padding-top:12.5em; #register #form_notice, #shownotice #form_notice, #confirmaddress #form_notice, -#tag #form_notice { +#tag #form_notice, +#siteadminpanel #form_notice, +#designadminpanel #form_notice, +#useradminpanel #form_notice, +#pathsadminpanel #form_notice, +#adminprofileflag #form_notice { display:none; } -- cgit v1.2.3-54-g00ecf From deeaafe71239597878cb3fd78aa66314745796a3 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Thu, 7 Jan 2010 20:59:31 +0000 Subject: Fixes to bugs where non-local messages were being wrong put in the public timeline and public xmpp feed --- actions/shownotice.php | 2 +- classes/Notice.php | 2 +- lib/jabber.php | 2 +- lib/noticelist.php | 2 +- lib/ping.php | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/actions/shownotice.php b/actions/shownotice.php index 5d16fdad9..d09100f67 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -103,7 +103,7 @@ class ShownoticeAction extends OwnerDesignAction $this->user = User::staticGet('id', $this->profile->id); - if (! $this->notice->is_local) { + if ($this->notice->is_local == Notice::REMOTE_OMB) { common_redirect($this->notice->uri); return false; } diff --git a/classes/Notice.php b/classes/Notice.php index 9fa022650..9bda47827 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -63,7 +63,7 @@ class Notice extends Memcached_DataObject public $created; // datetime multiple_key not_null default_0000-00-00%2000%3A00%3A00 public $modified; // timestamp not_null default_CURRENT_TIMESTAMP public $reply_to; // int(4) - public $is_local; // tinyint(1) + public $is_local; // int(4) public $source; // varchar(32) public $conversation; // int(4) public $lat; // decimal(10,7) diff --git a/lib/jabber.php b/lib/jabber.php index 01aed8ffa..6e094c207 100644 --- a/lib/jabber.php +++ b/lib/jabber.php @@ -440,7 +440,7 @@ function jabber_public_notice($notice) // XXX: should we send out non-local messages if public,localonly // = false? I think not - if ($public && $notice->is_local) { + if ($public && $notice->is_local == LOCAL_PUBLIC) { $profile = Profile::staticGet($notice->profile_id); if (!$profile) { diff --git a/lib/noticelist.php b/lib/noticelist.php index 5eb2633ac..78abf34a7 100644 --- a/lib/noticelist.php +++ b/lib/noticelist.php @@ -379,7 +379,7 @@ class NoticeListItem extends Widget function showNoticeLink() { - if($this->notice->is_local){ + if($this->notice->is_local == Notice::LOCAL_PUBLIC || $this->notice->is_local == Notice::LOCAL_NONPUBLIC){ $noticeurl = common_local_url('shownotice', array('notice' => $this->notice->id)); }else{ diff --git a/lib/ping.php b/lib/ping.php index 5698c4038..735af9ef1 100644 --- a/lib/ping.php +++ b/lib/ping.php @@ -21,7 +21,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } function ping_broadcast_notice($notice) { - if (!$notice->is_local) { + if ($notice->is_local != Notice::LOCAL_PUBLIC && $notice->is_local != Notice::LOCAL_NONPUBLIC) { return true; } @@ -115,4 +115,4 @@ function ping_notice_tags($notice) { return implode('|', $tags); } return NULL; -} \ No newline at end of file +} -- cgit v1.2.3-54-g00ecf From 14421d9db31392c731fc6d298805f6f4fd216b8b Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Thu, 7 Jan 2010 21:01:07 +0000 Subject: Correction to previous commit --- lib/jabber.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jabber.php b/lib/jabber.php index 6e094c207..a821856a8 100644 --- a/lib/jabber.php +++ b/lib/jabber.php @@ -440,7 +440,7 @@ function jabber_public_notice($notice) // XXX: should we send out non-local messages if public,localonly // = false? I think not - if ($public && $notice->is_local == LOCAL_PUBLIC) { + if ($public && $notice->is_local == Notice::LOCAL_PUBLIC) { $profile = Profile::staticGet($notice->profile_id); if (!$profile) { -- cgit v1.2.3-54-g00ecf From 6ae6fb7a35cb666fbb59218fa57717522af96f60 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 15:59:07 -0800 Subject: clear profile location data if unparseable location string --- actions/profilesettings.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/actions/profilesettings.php b/actions/profilesettings.php index ee236fe62..0d6777879 100644 --- a/actions/profilesettings.php +++ b/actions/profilesettings.php @@ -316,7 +316,12 @@ class ProfilesettingsAction extends AccountSettingsAction $loc = Location::fromName($location); - if (!empty($loc)) { + if (empty($loc)) { + $profile->lat = null; + $profile->lon = null; + $profile->location_id = null; + $profile->location_ns = null; + } else { $profile->lat = $loc->lat; $profile->lon = $loc->lon; $profile->location_id = $loc->location_id; -- cgit v1.2.3-54-g00ecf From 2c33e61b94fca8654c0d543fb0baa164ee86d2c3 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 16:13:36 -0800 Subject: add default plugins and load them --- lib/common.php | 21 +++++++++++++++++++++ lib/default.php | 17 +++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/lib/common.php b/lib/common.php index b0e5c4390..fb5e5919e 100644 --- a/lib/common.php +++ b/lib/common.php @@ -238,6 +238,27 @@ function __autoload($cls) } } +// Load default plugins + +foreach ($config['plugins']['default'] as $name => $params) { + if (is_null($params)) { + addPlugin($name); + } else if (is_array($params)) { + if (count($params) == 0) { + addPlugin($name); + } else { + $keys = array_keys($params); + if (is_string($keys[0])) { + addPlugin($name, $params); + } else { + foreach ($params as $paramset) { + addPlugin($name, $paramset); + } + } + } + } +} + // XXX: how many of these could be auto-loaded on use? // XXX: note that these files should not use config options // at compile time since DB config options are not yet loaded. diff --git a/lib/default.php b/lib/default.php index f2e577149..5acd2fb87 100644 --- a/lib/default.php +++ b/lib/default.php @@ -230,4 +230,21 @@ $default = array('timeout' => 5), // HTTP request timeout in seconds when contacting remote hosts for OMB updates 'logincommand' => array('disabled' => true), + 'plugins' => + array('default' => array('LilUrl' => array('shortenerName'=>'ur1.ca', + 'freeService' => true, + 'serviceUrl'=>'http://ur1.ca/'), + 'PtitUrl' => array('shortenerName' => 'ptiturl1.com', + 'serviceUrl' => 'http://ptiturl.com/?creer=oui&action=Reduire&url=%1$s'), + 'SimpleUrl' => array(array('shortenerName' => 'is.gd', 'serviceUrl' => 'http://is.gd/api.php?longurl=%1$s'), + array('shortenerName' => 'snipr.com', 'serviceUrl' => 'http://snipr.com/site/snip?r=simple&link=%1$s'), + array('shortenerName' => 'metamark.net', 'serviceUrl' => 'http://metamark.net/api/rest/simple?long_url=%1$s'), + array('shortenerName' => 'tinyurl.com', 'serviceUrl' => 'http://tinyurl.com/api-create.php?url=%1$s')), + 'TightUrl' => array('shortenerName' => '2tu.us', 'freeService' => true,'serviceUrl'=>'http://2tu.us/?save=y&url=%1$s'), + 'Geonames' => null, + 'Mapstraction' => null, + 'Linkback' => null, + 'WikiHashtags' => null, + 'OpenID' => null), + ) ); -- cgit v1.2.3-54-g00ecf From 4a4ac7a1082405621ce8e578099ddb7be329bb38 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:26:40 -0800 Subject: add a version action to give credit and list plugins --- actions/version.php | 227 ++++++++++++++++++++++++++++++++++++++++++++++++++++ lib/action.php | 2 + lib/router.php | 4 +- 3 files changed, 232 insertions(+), 1 deletion(-) create mode 100644 actions/version.php diff --git a/actions/version.php b/actions/version.php new file mode 100644 index 000000000..92a59ed47 --- /dev/null +++ b/actions/version.php @@ -0,0 +1,227 @@ +. + * + * @category Info + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Version info page + * + * A page that shows version information for this site. Helpful for + * debugging, for giving credit to authors, and for linking to more + * complete documentation for admins. + * + * @category Info + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +class VersionAction extends Action +{ + var $pluginVersions = array(); + + /** + * Return true since we're read-only. + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + + function isReadOnly($args) + { + return true; + } + + /** + * Returns the page title + * + * @return string page title + */ + + function title() + { + return sprintf(_("StatusNet %s"), STATUSNET_VERSION); + } + + /** + * Prepare to run + * + * Fire off an event to let plugins report their + * versions. + * + * @param array $args array misc. arguments + * + * @return boolean true + */ + + function prepare($args) + { + parent::prepare($args); + + Event::handle('PluginVersion', array(&$this->pluginVersions)); + + return true; + } + + /** + * Execute the action + * + * Shows a page with the version information in the + * content area. + * + * @param array $args ignored. + * + * @return void + */ + + function handle($args) + { + parent::handle($args); + $this->showPage(); + } + + /** + * Show version information + * + * @return void + */ + + function showContent() + { + $this->elementStart('p'); + + $this->raw(sprintf(_('This site is powered by %s version %s, '. + 'Copyright 2008-2010 StatusNet, Inc. '. + 'and contributors.'), + XMLStringer::estring('a', array('href' => 'http://status.net/'), + _('StatusNet')), + STATUSNET_VERSION)); + $this->elementEnd('p'); + + $this->element('h2', null, _('Contributors')); + + $this->element('p', null, implode(', ', $this->contributors)); + + $this->element('h2', null, _('License')); + + $this->element('p', null, + _('StatusNet is free software: you can redistribute it and/or modify '. + 'it under the terms of the GNU Affero General Public License as published by '. + 'the Free Software Foundation, either version 3 of the License, or '. + '(at your option) any later version. ')); + + $this->element('p', null, + _('This program is distributed in the hope that it will be useful, '. + 'but WITHOUT ANY WARRANTY; without even the implied warranty of '. + 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the '. + 'GNU Affero General Public License for more details. ')); + + $this->elementStart('p'); + $this->raw(sprintf(_('You should have received a copy of the GNU Affero General Public License '. + 'along with this program. If not, see %s.'), + XMLStringer::estring('a', array('href' => 'http://www.gnu.org/licenses/agpl.html'), + 'http://www.gnu.org/licenses/agpl.html'))); + $this->elementEnd('p'); + + // XXX: Theme information? + + if (count($this->pluginVersions)) { + $this->element('h2', null, _('Plugins')); + + foreach ($this->pluginVersions as $plugin) { + $this->elementStart('dl'); + $this->element('dt', null, _('Name')); + if (array_key_exists('homepage', $plugin)) { + $this->elementStart('dd'); + $this->element('a', array('href' => $plugin['homepage']), + $plugin['name']); + $this->elementEnd('dd'); + } else { + $this->element('dd', null, $plugin['name']); + } + $this->element('dt', null, _('Version')); + $this->element('dd', null, $plugin['version']); + if (array_key_exists('author', $plugin)) { + $this->element('dt', null, _('Author(s)')); + $this->element('dd', null, $plugin['author']); + } + if (array_key_exists('rawdescription', $plugin)) { + $this->element('dt', null, _('Description')); + $this->elementStart('dd'); + $this->raw($plugin['rawdescription']); + $this->elementEnd('dd'); + } else if (array_key_exists('description', $plugin)) { + $this->element('dt', null, _('Description')); + $this->element('dd', null, $plugin['description']); + } + $this->elementEnd('dl'); + } + } + + } + + var $contributors = array('Evan Prodromou (StatusNet)', + 'Zach Copley (StatusNet)', + 'Earle Martin (StatusNet)', + 'Marie-Claude Doyon (StatusNet)', + 'Sarven Capadisli (StatusNet)', + 'Robin Millette (StatusNet)', + 'Ciaran Gultnieks', + 'Michael Landers', + 'Ori Avtalion', + 'Garret Buell', + 'Mike Cochrane', + 'Matthew Gregg', + 'Florian Biree', + 'Erik Stambaugh', + 'drry', + 'Gina Haeussge', + 'Tryggvi Björgvinsson', + 'Adrian Lang', + 'Meitar Moscovitz', + 'Sean Murphy', + 'Leslie Michael Orchard', + 'Eric Helgeson', + 'Ken Sedgwick', + 'Brian Hendrickson', + 'Tobias Diekershoff', + 'Dan Moore', + 'Fil', + 'Jeff Mitchell', + 'Brenda Wallace', + 'Jeffery To', + 'Federico Marani', + 'Craig Andrews', + 'mEDI', + 'Brett Taylor'); +} diff --git a/lib/action.php b/lib/action.php index 35df03566..715072d1e 100644 --- a/lib/action.php +++ b/lib/action.php @@ -736,6 +736,8 @@ class Action extends HTMLOutputter // lawsuit _('Privacy')); $this->menuItem(common_local_url('doc', array('title' => 'source')), _('Source')); + $this->menuItem(common_local_url('version'), + _('Version')); $this->menuItem(common_local_url('doc', array('title' => 'contact')), _('Contact')); $this->menuItem(common_local_url('doc', array('title' => 'badge')), diff --git a/lib/router.php b/lib/router.php index 7ec962460..287d3c79f 100644 --- a/lib/router.php +++ b/lib/router.php @@ -101,7 +101,9 @@ class Router 'silence', 'unsilence', 'repeat', 'deleteuser', - 'geocode'); + 'geocode', + 'version', + ); foreach ($main as $a) { $m->connect('main/'.$a, array('action' => $a)); -- cgit v1.2.3-54-g00ecf From ff930d255537eb0d11f3792738c953e515f98fa9 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:27:01 -0800 Subject: add version information to Geonames plugin --- plugins/GeonamesPlugin.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/GeonamesPlugin.php b/plugins/GeonamesPlugin.php index 805166eaa..52cc9c97f 100644 --- a/plugins/GeonamesPlugin.php +++ b/plugins/GeonamesPlugin.php @@ -426,4 +426,16 @@ class GeonamesPlugin extends Plugin return $document->geoname; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Geonames', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Geonames', + 'rawdescription' => + _m('Uses
Geonames service to get human-readable '. + 'names for locations based on user-provided lat/long pairs.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 9fc63a56a2280c69f55b747e4c1a78b45ea799a6 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:28:31 -0800 Subject: make a list of plugins --- actions/version.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/actions/version.php b/actions/version.php index 92a59ed47..3d74560c7 100644 --- a/actions/version.php +++ b/actions/version.php @@ -158,7 +158,10 @@ class VersionAction extends Action if (count($this->pluginVersions)) { $this->element('h2', null, _('Plugins')); + $this->elementStart('ul'); + foreach ($this->pluginVersions as $plugin) { + $this->elementStart('li'); $this->elementStart('dl'); $this->element('dt', null, _('Name')); if (array_key_exists('homepage', $plugin)) { @@ -185,7 +188,9 @@ class VersionAction extends Action $this->element('dd', null, $plugin['description']); } $this->elementEnd('dl'); + $this->elementEnd('li'); } + $this->elementEnd('ul'); } } -- cgit v1.2.3-54-g00ecf From 9693b2cf2ff66cccc40497ac6b4c2dcc0f574ea2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:33:46 -0800 Subject: add default plugin version information --- lib/plugin.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/plugin.php b/lib/plugin.php index de7313e59..65ccdafbb 100644 --- a/lib/plugin.php +++ b/lib/plugin.php @@ -104,5 +104,16 @@ class Plugin { $this->log(LOG_DEBUG, $msg); } + + function onPluginVersion(&$versions) + { + $cls = get_class($this); + $name = mb_substr($cls, 0, -6); + + $versions[] = array('name' => $name, + 'version' => _('Unknown')); + + return true; + } } -- cgit v1.2.3-54-g00ecf From 42834944e07926ab1d42c3fb5c498e1f7da85407 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:37:44 -0800 Subject: add version info to SamplePlugin --- plugins/Sample/SamplePlugin.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/Sample/SamplePlugin.php b/plugins/Sample/SamplePlugin.php index 7ea956af6..913741226 100644 --- a/plugins/Sample/SamplePlugin.php +++ b/plugins/Sample/SamplePlugin.php @@ -266,5 +266,16 @@ class SamplePlugin extends Plugin _m('Hello'), _m('A warm greeting'), false, 'nav_hello'); return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Sample', + 'version' => STATUSNET_VERSION, + 'author' => 'Brion Vibber, Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Sample', + 'rawdescription' => + _m('A sample plugin to show basics of development for new hackers.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 1c824a52ecd980f55c0b6da1d0d4c02305d2cb84 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:39:15 -0800 Subject: Add version info to the CacheLog plugin --- plugins/CacheLogPlugin.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/CacheLogPlugin.php b/plugins/CacheLogPlugin.php index f1e5dd83a..4c47de80e 100644 --- a/plugins/CacheLogPlugin.php +++ b/plugins/CacheLogPlugin.php @@ -106,5 +106,16 @@ class CacheLogPlugin extends Plugin $this->log(LOG_INFO, "Done deleting cache value for key '$key'"); return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'CacheLog', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:CacheLog', + 'description' => + _m('Log reads and writes to the cache')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 0587dcc0457e71cd15d6f2af38d181f522a73315 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:41:55 -0800 Subject: add version info to OpenID plugin --- plugins/OpenID/OpenIDPlugin.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/plugins/OpenID/OpenIDPlugin.php b/plugins/OpenID/OpenIDPlugin.php index a37d5465e..248afe3fa 100644 --- a/plugins/OpenID/OpenIDPlugin.php +++ b/plugins/OpenID/OpenIDPlugin.php @@ -70,7 +70,7 @@ class OpenIDPlugin extends Plugin $m->connect('index.php?action=finishopenidlogin', array('action' => 'finishopenidlogin')); $m->connect('index.php?action=finishaddopenid', array('action' => 'finishaddopenid')); $m->connect('main/openidserver', array('action' => 'openidserver')); - + return true; } @@ -101,11 +101,11 @@ class OpenIDPlugin extends Plugin 'xmlns:simple' => 'http://xrds-simple.net/core/1.0', 'version' => '2.0')); $xrdsOutputter->element('Type', null, 'xri://$xrds*simple'); - + //consumer $xrdsOutputter->showXrdsService('http://specs.openid.net/auth/2.0/return_to', common_local_url('finishopenidlogin')); - + //provider $xrdsOutputter->showXrdsService('http://specs.openid.net/auth/2.0/signon', common_local_url('openidserver'), @@ -308,4 +308,15 @@ class OpenIDPlugin extends Plugin $tables[] = 'User_openid_trustroot'; return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'OpenID', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou, Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:OpenID', + 'rawdescription' => + _m('Use OpenID to login to the site.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From afaefa69425f1eca6f7a1db4585b7ea37d851ed2 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:43:56 -0800 Subject: add version info to the Template plugin --- plugins/TemplatePlugin.php | 112 ++++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 51 deletions(-) diff --git a/plugins/TemplatePlugin.php b/plugins/TemplatePlugin.php index 18aa8034c..80625c5b7 100644 --- a/plugins/TemplatePlugin.php +++ b/plugins/TemplatePlugin.php @@ -22,13 +22,13 @@ if (!defined('STATUSNET')) { define('TEMPLATEPLUGIN_VERSION', '0.1'); class TemplatePlugin extends Plugin { - + var $blocks = array(); - + function __construct() { parent::__construct(); } - + // capture the RouterInitialized event // and connect a new API method // for updating the template @@ -37,8 +37,7 @@ class TemplatePlugin extends Plugin { 'action' => 'template', )); } - - + // <%styles%> // <%scripts%> // <%search%> @@ -50,18 +49,18 @@ class TemplatePlugin extends Plugin { $act->extraHead(); $this->blocks['head'] = $act->xw->flush(); $act->showStylesheets(); - $this->blocks['styles'] = $act->xw->flush(); + $this->blocks['styles'] = $act->xw->flush(); $act->showScripts(); - $this->blocks['scripts'] = $act->xw->flush(); + $this->blocks['scripts'] = $act->xw->flush(); $act->showFeeds(); - $this->blocks['feeds'] = $act->xw->flush(); + $this->blocks['feeds'] = $act->xw->flush(); $act->showOpenSearch(); - $this->blocks['search'] = $act->xw->flush(); + $this->blocks['search'] = $act->xw->flush(); $act->showDescription(); $this->blocks['description'] = $act->xw->flush(); return false; } - + // <%bodytext%> function onStartShowContentBlock( &$act ) { $this->clear_xmlWriter($act); @@ -70,7 +69,7 @@ class TemplatePlugin extends Plugin { function onEndShowContentBlock( &$act ) { $this->blocks['bodytext'] = $act->xw->flush(); } - + // <%localnav%> function onStartShowLocalNavBlock( &$act ) { $this->clear_xmlWriter($act); @@ -79,7 +78,7 @@ class TemplatePlugin extends Plugin { function onEndShowLocalNavBlock( &$act ) { $this->blocks['localnav'] = $act->xw->flush(); } - + // <%export%> function onStartShowExportData( &$act ) { $this->clear_xmlWriter($act); @@ -88,7 +87,7 @@ class TemplatePlugin extends Plugin { function onEndShowExportData( &$act ) { $this->blocks['export'] = $act->xw->flush(); } - + // <%subscriptions%> // <%subscribers%> // <%groups%> @@ -149,7 +148,7 @@ class TemplatePlugin extends Plugin { } return false; } - + // <%logo%> // <%nav%> // <%notice%> @@ -170,7 +169,7 @@ class TemplatePlugin extends Plugin { $this->blocks['noticeform'] = $act->xw->flush(); return false; } - + // <%secondarynav%> // <%licenses%> function onStartShowFooter( &$act ) { @@ -181,19 +180,19 @@ class TemplatePlugin extends Plugin { $this->blocks['licenses'] = $act->xw->flush(); return false; } - + // capture the EndHTML event // and include the template function onEndEndHTML($act) { - + global $action, $tags; - + // set the action and title values $vars = array( 'action'=>$action, 'title'=>$act->title(). " - ". common_config('site', 'name') ); - + // use the PHP template // unless statusnet config: // $config['template']['mode'] = 'html'; @@ -203,55 +202,55 @@ class TemplatePlugin extends Plugin { include $tpl_file; return; } - + $tpl_file = $this->templateFolder() . '/index.html'; - + // read the static template $output = file_get_contents( $tpl_file ); - + $tags = array(); - + // get a list of the <%tags%> in the template $pattern='/<%([a-z]+)%>/'; - + if ( 1 <= preg_match_all( $pattern, $output, $found )) $tags[] = $found; - + // for each found tag, set its value from the rendered blocks foreach( $tags[0][1] as $pos=>$tag ) { if (isset($this->blocks[$tag])) $vars[$tag] = $this->blocks[$tag]; - + // didn't find a block for the tag elseif (!isset($vars[$tag])) $vars[$tag] = ''; } - + // replace the tags in the template foreach( $vars as $key=>$val ) $output = str_replace( '<%'.$key.'%>', $val, $output ); - + echo $output; - + return true; - + } function templateFolder() { return 'tpl'; } - + // catching the StartShowHTML event to halt the rendering function onStartShowHTML( &$act ) { $this->clear_xmlWriter($act); return true; } - + // clear the xmlWriter function clear_xmlWriter( &$act ) { $act->xw->openMemory(); $act->xw->setIndent(true); } - + } /** @@ -267,7 +266,7 @@ class TemplatePlugin extends Plugin { * @link http://megapump.com/ * */ - + class TemplateAction extends Action { @@ -275,54 +274,65 @@ class TemplateAction extends Action parent::prepare($args); return true; } - + function handle($args) { - + parent::handle($args); - + if (!isset($_SERVER['PHP_AUTH_USER'])) { - + // not authenticated, show login form header('WWW-Authenticate: Basic realm="StatusNet API"'); - + // cancelled the browser login form $this->clientError(_('Authentication error!'), $code = 401); - + } else { - + $nick = $_SERVER['PHP_AUTH_USER']; $pass = $_SERVER['PHP_AUTH_PW']; - + // check username and password $user = common_check_user($nick,$pass); - + if ($user) { - + // verify that user is admin if (!($user->id == 1)) $this->clientError(_('Only User #1 can update the template.'), $code = 401); - + // open the old template $tpl_file = $this->templateFolder() . '/index.html'; $fp = fopen( $tpl_file, 'w+' ); - + // overwrite with the new template fwrite($fp, $this->arg('template')); fclose($fp); - + header('HTTP/1.1 200 OK'); header('Content-type: text/plain'); print "Template Updated!"; - + } else { - + // bad username and password $this->clientError(_('Authentication error!'), $code = 401); - + } - + } } + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Template', + 'version' => TEMPLATEPLUGIN_VERSION, + 'author' => 'Brian Hendrickson', + 'homepage' => 'http://status.net/wiki/Plugin:Template', + 'rawdescription' => + _m('Use an HTML template for Web output.')); + return true; + } + } /** -- cgit v1.2.3-54-g00ecf From 6395ac71b8b359098801d914dfc930affda1984b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:47:23 -0800 Subject: add version information to PiwikAnalyticsPlugin --- plugins/PiwikAnalyticsPlugin.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/PiwikAnalyticsPlugin.php b/plugins/PiwikAnalyticsPlugin.php index fefd09867..b353d7255 100644 --- a/plugins/PiwikAnalyticsPlugin.php +++ b/plugins/PiwikAnalyticsPlugin.php @@ -97,4 +97,16 @@ ENDOFPIWIK; $action->inlineScript($piwikCode2); return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'PiwikAnalytics', + 'version' => STATUSNET_VERSION, + 'author' => 'Tobias Diekershoff, Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Piwik', + 'rawdescription' => + _m('Use Piwik Open Source Web analytics software.')); + return true; + } + } -- cgit v1.2.3-54-g00ecf From ca3b2d614a0f7340ee5e83687be1951020c5aafa Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:49:39 -0800 Subject: add version information to MemcachePlugin --- plugins/MemcachePlugin.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php index 998766313..b714fb25f 100644 --- a/plugins/MemcachePlugin.php +++ b/plugins/MemcachePlugin.php @@ -171,5 +171,16 @@ class MemcachePlugin extends Plugin $this->compressMinSaving); } } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Memcache', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou, Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:Memcache', + 'rawdescription' => + _m('Use Memcached to cache query results.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 87c181b4e373f0c23bf22bc06af9442776b9b021 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:51:57 -0800 Subject: add version information to GoogleAnalytics --- plugins/GoogleAnalyticsPlugin.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/GoogleAnalyticsPlugin.php b/plugins/GoogleAnalyticsPlugin.php index 6891ee6a7..c646bf113 100644 --- a/plugins/GoogleAnalyticsPlugin.php +++ b/plugins/GoogleAnalyticsPlugin.php @@ -70,4 +70,16 @@ class GoogleAnalyticsPlugin extends Plugin $action->inlineScript($js1); $action->inlineScript($js2); } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'GoogleAnalytics', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:GoogleAnalytics', + 'rawdescription' => + _m('Use Google Analytics'. + ' to track Web access.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From fe01a7d18391e37c17754e357bb27423fbc39ef7 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:58:38 -0800 Subject: add version information to Linkback --- plugins/LinkbackPlugin.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/LinkbackPlugin.php b/plugins/LinkbackPlugin.php index f220fff8f..15e57ab0e 100644 --- a/plugins/LinkbackPlugin.php +++ b/plugins/LinkbackPlugin.php @@ -231,4 +231,18 @@ class LinkbackPlugin extends Plugin return 'LinkbackPlugin/'.LINKBACKPLUGIN_VERSION . ' StatusNet/' . STATUSNET_VERSION; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Linkback', + 'version' => LINKBACKPLUGIN_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Linkback', + 'rawdescription' => + _m('Notify blog authors when their posts have been linked in '. + 'microblog notices using '. + 'Pingback '. + 'or Trackback protocols.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 11b19788f560c45e7a865bbd56bf1e90bdfb9a0b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 17:58:48 -0800 Subject: add version information to GeoURL --- plugins/GeoURLPlugin.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/GeoURLPlugin.php b/plugins/GeoURLPlugin.php index 30ff2c278..01178f39c 100644 --- a/plugins/GeoURLPlugin.php +++ b/plugins/GeoURLPlugin.php @@ -116,4 +116,16 @@ class GeoURLPlugin extends Plugin return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'GeoURL', + 'version' => STATUSNET_VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:GeoURL', + 'rawdescription' => + _m('Ping GeoURL when '. + 'new geolocation-enhanced notices are posted.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 505cd382f3d0d37f3d9581a907877e644b5118fd Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 7 Jan 2010 23:38:19 -0800 Subject: ptiturl.com correct name --- lib/default.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/default.php b/lib/default.php index 5acd2fb87..a52c05b53 100644 --- a/lib/default.php +++ b/lib/default.php @@ -234,7 +234,7 @@ $default = array('default' => array('LilUrl' => array('shortenerName'=>'ur1.ca', 'freeService' => true, 'serviceUrl'=>'http://ur1.ca/'), - 'PtitUrl' => array('shortenerName' => 'ptiturl1.com', + 'PtitUrl' => array('shortenerName' => 'ptiturl.com', 'serviceUrl' => 'http://ptiturl.com/?creer=oui&action=Reduire&url=%1$s'), 'SimpleUrl' => array(array('shortenerName' => 'is.gd', 'serviceUrl' => 'http://is.gd/api.php?longurl=%1$s'), array('shortenerName' => 'snipr.com', 'serviceUrl' => 'http://snipr.com/site/snip?r=simple&link=%1$s'), -- cgit v1.2.3-54-g00ecf From 20af83d316d8a89c3c9a34d17c252425433fc54f Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Fri, 8 Jan 2010 00:09:23 -0800 Subject: Add version info for Facebook, TwitterBridge and RSSCloud plugins --- plugins/Facebook/FacebookPlugin.php | 15 +++++++++++++++ plugins/RSSCloud/RSSCloudPlugin.php | 16 ++++++++++++++++ plugins/TwitterBridge/TwitterBridgePlugin.php | 15 +++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/plugins/Facebook/FacebookPlugin.php b/plugins/Facebook/FacebookPlugin.php index 39b2ef287..de91bf24a 100644 --- a/plugins/Facebook/FacebookPlugin.php +++ b/plugins/Facebook/FacebookPlugin.php @@ -32,6 +32,7 @@ if (!defined('STATUSNET')) { } define("FACEBOOK_CONNECT_SERVICE", 3); +define('FACEBOOKPLUGIN_VERSION', '0.9'); require_once INSTALLDIR . '/plugins/Facebook/facebookutil.php'; @@ -554,4 +555,18 @@ class FacebookPlugin extends Plugin return true; } + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Facebook', + 'version' => FACEBOOKPLUGIN_VERSION, + 'author' => 'Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:Facebook', + 'rawdescription' => + _m('The Facebook plugin allows you to integrate ' . + 'your StatusNet instance with ' . + 'Facebook ' . + 'and Facebook Connect.')); + return true; + } + } diff --git a/plugins/RSSCloud/RSSCloudPlugin.php b/plugins/RSSCloud/RSSCloudPlugin.php index 4b9812a47..2de162628 100644 --- a/plugins/RSSCloud/RSSCloudPlugin.php +++ b/plugins/RSSCloud/RSSCloudPlugin.php @@ -31,6 +31,8 @@ if (!defined('STATUSNET')) { exit(1); } +define('RSSCLOUDPLUGIN_VERSION', '0.1'); + /** * Plugin class for adding RSSCloud capabilities to StatusNet * @@ -275,5 +277,19 @@ class RSSCloudPlugin extends Plugin return true; } + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'RSSCloud', + 'version' => RSSCLOUDPLUGIN_VERSION, + 'author' => 'Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:RSSCloud', + 'rawdescription' => + _m('The RSSCloud plugin enables your StatusNet instance to publish ' . + 'real-time updates for profile RSS feeds using the ' . + 'RSSCloud protocol".')); + + return true; + } + } diff --git a/plugins/TwitterBridge/TwitterBridgePlugin.php b/plugins/TwitterBridge/TwitterBridgePlugin.php index de1181903..a87ee2894 100644 --- a/plugins/TwitterBridge/TwitterBridgePlugin.php +++ b/plugins/TwitterBridge/TwitterBridgePlugin.php @@ -31,6 +31,8 @@ if (!defined('STATUSNET')) { require_once INSTALLDIR . '/plugins/TwitterBridge/twitter.php'; +define('TWITTERBRIDGEPLUGIN_VERSION', '0.9'); + /** * Plugin for sending and importing Twitter statuses * @@ -189,4 +191,17 @@ class TwitterBridgePlugin extends Plugin return true; } + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'TwitterBridge', + 'version' => TWITTERBRIDGEPLUGIN_VERSION, + 'author' => 'Zach Copley', + 'homepage' => 'http://status.net/wiki/Plugin:TwitterBridge', + 'rawdescription' => + _m('The Twitter "bridge" plugin allows you to integrate ' . + 'your StatusNet instance with ' . + 'Twitter.')); + return true; + } + } -- cgit v1.2.3-54-g00ecf From 054aaa40bf89fd6726f16fb6dcfe6dfab03ef45c Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 8 Jan 2010 00:20:38 -0800 Subject: add versions for url-shortener plugins --- plugins/BitlyUrl/BitlyUrlPlugin.php | 14 +++++++++++++- plugins/LilUrl/LilUrlPlugin.php | 17 +++++++++++++++-- plugins/PtitUrl/PtitUrlPlugin.php | 13 +++++++++++++ plugins/SimpleUrl/SimpleUrlPlugin.php | 13 +++++++++++++ plugins/TightUrl/TightUrlPlugin.php | 12 ++++++++++++ 5 files changed, 66 insertions(+), 3 deletions(-) diff --git a/plugins/BitlyUrl/BitlyUrlPlugin.php b/plugins/BitlyUrl/BitlyUrlPlugin.php index 65d0f70e6..f7f28b4d6 100644 --- a/plugins/BitlyUrl/BitlyUrlPlugin.php +++ b/plugins/BitlyUrl/BitlyUrlPlugin.php @@ -49,6 +49,18 @@ class BitlyUrlPlugin extends UrlShortenerPlugin if(!$response) return; return current(json_decode($response)->results)->hashUrl; } -} + function onPluginVersion(&$versions) + { + $versions[] = array('name' => sprintf('BitlyUrl (%s)', $this->shortenerName), + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:BitlyUrl', + 'rawdescription' => + sprintf(_m('Uses %1$s URL-shortener service.'), + $this->shortenerName)); + + return true; + } +} diff --git a/plugins/LilUrl/LilUrlPlugin.php b/plugins/LilUrl/LilUrlPlugin.php index 4a6f1cdc7..c3e37c0c0 100644 --- a/plugins/LilUrl/LilUrlPlugin.php +++ b/plugins/LilUrl/LilUrlPlugin.php @@ -46,9 +46,9 @@ class LilUrlPlugin extends UrlShortenerPlugin protected function shorten($url) { $data = array('longurl' => $url); - + $responseBody = $this->http_post($this->serviceUrl,$data); - + if (!$responseBody) return; $y = @simplexml_load_string($responseBody); if (!isset($y->body)) return; @@ -57,5 +57,18 @@ class LilUrlPlugin extends UrlShortenerPlugin return strval($x['href']); } } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => sprintf('LilUrl (%s)', $this->shortenerName), + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:LilUrl', + 'rawdescription' => + sprintf(_m('Uses %1$s URL-shortener service.'), + $this->shortenerName)); + + return true; + } } diff --git a/plugins/PtitUrl/PtitUrlPlugin.php b/plugins/PtitUrl/PtitUrlPlugin.php index 76a438dd5..ddba942e6 100644 --- a/plugins/PtitUrl/PtitUrlPlugin.php +++ b/plugins/PtitUrl/PtitUrlPlugin.php @@ -56,5 +56,18 @@ class PtitUrlPlugin extends UrlShortenerPlugin return strval($xml['href']); } } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => sprintf('PtitUrl (%s)', $this->shortenerName), + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:PtitUrl', + 'rawdescription' => + sprintf(_m('Uses %1$s URL-shortener service.'), + $this->shortenerName)); + + return true; + } } diff --git a/plugins/SimpleUrl/SimpleUrlPlugin.php b/plugins/SimpleUrl/SimpleUrlPlugin.php index 45b745b07..6eac7dbb1 100644 --- a/plugins/SimpleUrl/SimpleUrlPlugin.php +++ b/plugins/SimpleUrl/SimpleUrlPlugin.php @@ -47,5 +47,18 @@ class SimpleUrlPlugin extends UrlShortenerPlugin protected function shorten($url) { return $this->http_get(sprintf($this->serviceUrl,urlencode($url))); } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => sprintf('SimpleUrl (%s)', $this->shortenerName), + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:SimpleUrl', + 'rawdescription' => + sprintf(_m('Uses %1$s URL-shortener service.'), + $this->shortenerName)); + + return true; + } } diff --git a/plugins/TightUrl/TightUrlPlugin.php b/plugins/TightUrl/TightUrlPlugin.php index 6ced9afdc..e2d494a7b 100644 --- a/plugins/TightUrl/TightUrlPlugin.php +++ b/plugins/TightUrl/TightUrlPlugin.php @@ -57,4 +57,16 @@ class TightUrlPlugin extends UrlShortenerPlugin return strval($xml['href']); } } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => sprintf('TightUrl (%s)', $this->shortenerName), + 'version' => STATUSNET_VERSION, + 'author' => 'Craig Andrews', + 'homepage' => 'http://status.net/wiki/Plugin:TightUrl', + 'rawdescription' => + sprintf(_m('Uses %1$s URL-shortener service.'), + $this->shortenerName)); + return true; + } } -- cgit v1.2.3-54-g00ecf From c57fe7fbf5be4c6a83f249849a535bba2549a2a6 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 8 Jan 2010 00:29:09 -0800 Subject: PluginVersion for WikiHashtags --- plugins/WikiHashtagsPlugin.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/WikiHashtagsPlugin.php b/plugins/WikiHashtagsPlugin.php index 334fc13ba..c6c976b8f 100644 --- a/plugins/WikiHashtagsPlugin.php +++ b/plugins/WikiHashtagsPlugin.php @@ -31,8 +31,6 @@ if (!defined('STATUSNET')) { exit(1); } -define('WIKIHASHTAGSPLUGIN_VERSION', '0.1'); - /** * Plugin to use WikiHashtags * @@ -47,6 +45,8 @@ define('WIKIHASHTAGSPLUGIN_VERSION', '0.1'); class WikiHashtagsPlugin extends Plugin { + const VERSION = '0.1'; + function __construct($code=null) { parent::__construct(); @@ -99,4 +99,15 @@ class WikiHashtagsPlugin extends Plugin return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'WikiHashtags', + 'version' => self::VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:WikiHashtags', + 'rawdescription' => + _m('Gets hashtag descriptions from WikiHashtags.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 4f62d685d04d43332e069c6de393ceb187594a02 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 8 Jan 2010 00:38:20 -0800 Subject: Mapstraction PluginVersion --- plugins/Blacklist/BlacklistPlugin.php | 13 +++++++++++++ plugins/Mapstraction/MapstractionPlugin.php | 15 +++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/plugins/Blacklist/BlacklistPlugin.php b/plugins/Blacklist/BlacklistPlugin.php index 655b0926b..84a2cb616 100644 --- a/plugins/Blacklist/BlacklistPlugin.php +++ b/plugins/Blacklist/BlacklistPlugin.php @@ -43,6 +43,8 @@ if (!defined('STATUSNET')) { class BlacklistPlugin extends Plugin { + const VERSION = STATUSNET_VERSION; + public $nicknames = array(); public $urls = array(); @@ -200,4 +202,15 @@ class BlacklistPlugin extends Plugin return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Blacklist', + 'version' => self::VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Blacklist', + 'description' => + _m('Keep a blacklist of forbidden nickname and URL patterns.')); + return true; + } } diff --git a/plugins/Mapstraction/MapstractionPlugin.php b/plugins/Mapstraction/MapstractionPlugin.php index 93679e56c..868933fd4 100644 --- a/plugins/Mapstraction/MapstractionPlugin.php +++ b/plugins/Mapstraction/MapstractionPlugin.php @@ -47,6 +47,8 @@ if (!defined('STATUSNET')) { class MapstractionPlugin extends Plugin { + const VERSION = STATUSNET_VERSION; + /** provider name, one of: 'cloudmade', 'google', 'microsoft', 'openlayers', 'yahoo' */ public $provider = 'openlayers'; @@ -192,4 +194,17 @@ class MapstractionPlugin extends Plugin $action->elementEnd('div'); } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Mapstraction', + 'version' => self::VERSION, + 'author' => 'Evan Prodromou', + 'homepage' => 'http://status.net/wiki/Plugin:Mapstraction', + 'rawdescription' => + _m('Show maps of users\' and friends\' notices '. + 'with Mapstraction '. + 'JavaScript library.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 2aa0ab9777a1b2a0eec5946dede56e23daa0defe Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 8 Jan 2010 01:00:29 -0800 Subject: let system administrators disallow certain admin panels --- lib/adminpanelaction.php | 46 +++++++++++++++++++++++++++++++++++----------- lib/default.php | 4 +++- 2 files changed, 38 insertions(+), 12 deletions(-) diff --git a/lib/adminpanelaction.php b/lib/adminpanelaction.php index 7997eb2b1..a6981ac61 100644 --- a/lib/adminpanelaction.php +++ b/lib/adminpanelaction.php @@ -70,7 +70,7 @@ class AdminPanelAction extends Action if (!common_logged_in()) { $this->clientError(_('Not logged in.')); - return; + return false; } $user = common_current_user(); @@ -94,7 +94,18 @@ class AdminPanelAction extends Action if (!$user->hasRight(Right::CONFIGURESITE)) { $this->clientError(_('You cannot make changes to this site.')); - return; + return false; + } + + // This panel must be enabled + + $name = $this->trimmed('action'); + + $name = mb_substr($name, 0, -10); + + if (!in_array($name, common_config('admin', 'panels'))) { + $this->clientError(_('Changes to that panel are not allowed.'), 403); + return false; } return true; @@ -224,7 +235,7 @@ class AdminPanelAction extends Action $this->clientError(_('saveSettings() not implemented.')); return; } - + /** * Delete a design setting * @@ -296,20 +307,33 @@ class AdminPanelNav extends Widget if (Event::handle('StartAdminPanelNav', array($this))) { - $this->out->menuItem(common_local_url('siteadminpanel'), _('Site'), - _('Basic site configuration'), $action_name == 'siteadminpanel', 'nav_site_admin_panel'); + if ($this->canAdmin('site')) { + $this->out->menuItem(common_local_url('siteadminpanel'), _('Site'), + _('Basic site configuration'), $action_name == 'siteadminpanel', 'nav_site_admin_panel'); + } - $this->out->menuItem(common_local_url('designadminpanel'), _('Design'), - _('Design configuration'), $action_name == 'designadminpanel', 'nav_design_admin_panel'); + if ($this->canAdmin('design')) { + $this->out->menuItem(common_local_url('designadminpanel'), _('Design'), + _('Design configuration'), $action_name == 'designadminpanel', 'nav_design_admin_panel'); + } - $this->out->menuItem(common_local_url('useradminpanel'), _('User'), - _('Paths configuration'), $action_name == 'useradminpanel', 'nav_design_admin_panel'); + if ($this->canAdmin('user')) { + $this->out->menuItem(common_local_url('useradminpanel'), _('User'), + _('Paths configuration'), $action_name == 'useradminpanel', 'nav_design_admin_panel'); + } - $this->out->menuItem(common_local_url('pathsadminpanel'), _('Paths'), - _('Paths configuration'), $action_name == 'pathsadminpanel', 'nav_design_admin_panel'); + if ($this->canAdmin('paths')) { + $this->out->menuItem(common_local_url('pathsadminpanel'), _('Paths'), + _('Paths configuration'), $action_name == 'pathsadminpanel', 'nav_design_admin_panel'); + } Event::handle('EndAdminPanelNav', array($this)); } $this->action->elementEnd('ul'); } + + function canAdmin($name) + { + return in_array($name, common_config('admin', 'panels')); + } } diff --git a/lib/default.php b/lib/default.php index a52c05b53..fa862f3ff 100644 --- a/lib/default.php +++ b/lib/default.php @@ -246,5 +246,7 @@ $default = 'Linkback' => null, 'WikiHashtags' => null, 'OpenID' => null), - ) + ), + 'admin' => + array('panels' => array('design', 'site', 'user', 'paths')), ); -- cgit v1.2.3-54-g00ecf From a7e73d318ab3e0f85ed86448d7250a65df435289 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 10:20:51 +0000 Subject: Added Brigitte Schuster (http://brigitteschuster.com) as one of the contributors to StatusNet. She created the identi.ca, laconi.ca, and status.net logos. --- README | 1 + actions/version.php | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/README b/README index c26fe786e..7457215a1 100644 --- a/README +++ b/README @@ -1622,6 +1622,7 @@ if anyone's been overlooked in error. * Craig Andrews * mEDI * Brett Taylor +* Brigitte Schuster Thanks also to the developers of our upstream library code and to the thousands of people who have tried out Identi.ca, installed StatusNet, diff --git a/actions/version.php b/actions/version.php index 3d74560c7..f8a17ced1 100644 --- a/actions/version.php +++ b/actions/version.php @@ -228,5 +228,6 @@ class VersionAction extends Action 'Federico Marani', 'Craig Andrews', 'mEDI', - 'Brett Taylor'); + 'Brett Taylor', + 'Brigitte Schuster'); } -- cgit v1.2.3-54-g00ecf From 5d04e4588691be6177f3475e61ba5b908a77280a Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 11:41:12 +0000 Subject: Updated markup for versions page --- actions/version.php | 75 +++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 56 insertions(+), 19 deletions(-) diff --git a/actions/version.php b/actions/version.php index f8a17ced1..2cf914296 100644 --- a/actions/version.php +++ b/actions/version.php @@ -110,6 +110,36 @@ class VersionAction extends Action $this->showPage(); } + + /* + * Override to add hentry, and content-inner classes + * + * @return void + */ + function showContentBlock() + { + $this->elementStart('div', array('id' => 'content', 'class' => 'hentry')); + $this->showPageTitle(); + $this->showPageNoticeBlock(); + $this->elementStart('div', array('id' => 'content_inner', + 'class' => 'entry-content')); + // show the actual content (forms, lists, whatever) + $this->showContent(); + $this->elementEnd('div'); + $this->elementEnd('div'); + } + + + /* + * Overrride to add entry-title class + * + * @return void + */ + function showPageTitle() { + $this->element('h1', array('class' => 'entry-title'), $this->title()); + } + + /** * Show version information * @@ -158,39 +188,46 @@ class VersionAction extends Action if (count($this->pluginVersions)) { $this->element('h2', null, _('Plugins')); - $this->elementStart('ul'); + $this->elementStart('table', array('id' => 'plugins_enabled')); + + $this->elementStart('thead'); + $this->elementStart('tr'); + $this->element('th', array('id' => 'plugin_name'), _('Name')); + $this->element('th', array('id' => 'plugin_version'), _('Version')); + $this->element('th', array('id' => 'plugin_authors'), _('Author(s)')); + $this->element('th', array('id' => 'plugin_description'), _('Description')); + $this->elementEnd('tr'); + $this->elementEnd('thead'); + $this->elementStart('tbody'); foreach ($this->pluginVersions as $plugin) { - $this->elementStart('li'); - $this->elementStart('dl'); - $this->element('dt', null, _('Name')); + $this->elementStart('tr'); if (array_key_exists('homepage', $plugin)) { - $this->elementStart('dd'); + $this->elementStart('th'); $this->element('a', array('href' => $plugin['homepage']), $plugin['name']); - $this->elementEnd('dd'); + $this->elementEnd('th'); } else { - $this->element('dd', null, $plugin['name']); + $this->element('th', null, $plugin['name']); } - $this->element('dt', null, _('Version')); - $this->element('dd', null, $plugin['version']); + + $this->element('td', null, $plugin['version']); + if (array_key_exists('author', $plugin)) { - $this->element('dt', null, _('Author(s)')); - $this->element('dd', null, $plugin['author']); + $this->element('td', null, $plugin['author']); } + if (array_key_exists('rawdescription', $plugin)) { - $this->element('dt', null, _('Description')); - $this->elementStart('dd'); + $this->elementStart('td'); $this->raw($plugin['rawdescription']); - $this->elementEnd('dd'); + $this->elementEnd('td'); } else if (array_key_exists('description', $plugin)) { - $this->element('dt', null, _('Description')); - $this->element('dd', null, $plugin['description']); + $this->element('td', null, $plugin['description']); } - $this->elementEnd('dl'); - $this->elementEnd('li'); + $this->elementEnd('tr'); } - $this->elementEnd('ul'); + $this->elementEnd('tbody'); + $this->elementEnd('table'); } } -- cgit v1.2.3-54-g00ecf From 8d1ee38087aeb44f13297bf1dfdbab8d133339ad Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 11:41:36 +0000 Subject: Updated styles for versions page --- theme/base/css/display.css | 27 ++++++++++++++++++++++++++- theme/default/css/display.css | 6 ++++-- theme/identica/css/display.css | 6 ++++-- 3 files changed, 34 insertions(+), 5 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index f441a4020..47afdabe3 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -1332,7 +1332,7 @@ margin-bottom:18px; .instructions ul, .hentry entry-content ol, .hentry .entry-content ul { -list-style-position:inside; +margin-left:1.795%; } .hentry .entry-content li { margin-bottom:18px; @@ -1341,6 +1341,31 @@ margin-bottom:18px; margin-left:18px; } +#content #plugin_authors { +min-width:122px; +} +#content thead th { +text-align:left; +} +#content tbody th { +vertical-align:top; +text-align:left; +font-weight:normal; +padding-top:11px; +padding-right:18px; +} +#content tbody tr { +border-top-width:1px; +border-top-style:dotted; +} +#content td { +padding:11px 18px 11px 0; +vertical-align:top; +} +#content td:last-child { +padding-right:0; +} + /* TOP_POSTERS */ .section tbody td { padding-right:18px; diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 0c8db45e7..1fe2bd569 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -134,7 +134,8 @@ color:#002FA7; } .notice, -.profile { +.profile, +#content tbody tr { border-top-color:#C8D1D5; } .mark-top { @@ -383,7 +384,8 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); -moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); -webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); } -#content .notices li:hover { +#content .notices li:hover, +#content tbody tr:hover { background-color:rgba(240, 240, 240, 0.2); } #conversation .notices li:hover { diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index a3e0f7ec3..dd02de6b9 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -134,7 +134,8 @@ color:#002FA7; } .notice, -.profile { +.profile, +#content tbody tr { border-top-color:#CEE1E9; } .mark-top { @@ -382,7 +383,8 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); -moz-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); -webkit-box-shadow:3px 3px 3px rgba(194, 194, 194, 0.3); } -#content .notices li:hover { +#content .notices li:hover, +#content tbody tr:hover { background-color:rgba(240, 240, 240, 0.2); } #conversation .notices li:hover { -- cgit v1.2.3-54-g00ecf From ce761c714284ddf8db4556757fc62e1051f701f7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 11:42:03 +0000 Subject: Updated plugin info for PoweredByStatusNet --- .../PoweredByStatusNet/PoweredByStatusNetPlugin.php | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php b/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php index 460550518..bae6c529d 100644 --- a/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php +++ b/plugins/PoweredByStatusNet/PoweredByStatusNetPlugin.php @@ -31,6 +31,16 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +/** + * Outputs 'powered by StatusNet' after site name + * + * @category Plugin + * @package StatusNet + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + class PoweredByStatusNetPlugin extends Plugin { function onEndAddressData($action) @@ -42,4 +52,15 @@ class PoweredByStatusNetPlugin extends Plugin return true; } + + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'PoweredByStatusNet', + 'version' => STATUSNET_VERSION, + 'author' => 'Sarven Capdaisli', + 'homepage' => 'http://status.net/wiki/Plugin:PoweredByStatusNet', + 'rawdescription' => + _m('Outputs powered by StatusNet after site name.')); + return true; + } } -- cgit v1.2.3-54-g00ecf From 336e67c6d229c7ed4df3f5c483421493e45c9fb5 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 11:52:59 +0000 Subject: Rearranged instructions, system_notice list-style-position --- theme/base/css/display.css | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 47afdabe3..2031aed21 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -1328,9 +1328,7 @@ padding-right:30px; .hentry .entry-content p { margin-bottom:18px; } -.system_notice ul, -.instructions ul, -.hentry entry-content ol, +.hentry .entry-content ol, .hentry .entry-content ul { margin-left:1.795%; } @@ -1502,6 +1500,7 @@ margin-left:0; width:auto; } +.system_notice ul, .instructions ul { list-style-position:inside; } -- cgit v1.2.3-54-g00ecf From 835a3f1e532331a0c331d7df84446d37ebc9a6e7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 13:21:55 +0000 Subject: Added minified version of json2.js to parse and stringify JSON objects --- js/json2.js | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 js/json2.js diff --git a/js/json2.js b/js/json2.js new file mode 100644 index 000000000..ecd5e959c --- /dev/null +++ b/js/json2.js @@ -0,0 +1,4 @@ +/* +http://www.JSON.org/json2.js minified +*/ +if(!this.JSON){JSON={};}(function(){function f(n){return n<10?'0'+n:n;}if(typeof Date.prototype.toJSON!=='function'){Date.prototype.toJSON=function(key){return this.getUTCFullYear()+'-'+f(this.getUTCMonth()+1)+'-'+f(this.getUTCDate())+'T'+f(this.getUTCHours())+':'+f(this.getUTCMinutes())+':'+f(this.getUTCSeconds())+'Z';};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf();};}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==='string'?c:'\\u'+('0000'+a.charCodeAt(0).toString(16)).slice(-4);})+'"':'"'+string+'"';}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==='object'&&typeof value.toJSON==='function'){value=value.toJSON(key);}if(typeof rep==='function'){value=rep.call(holder,key,value);}switch(typeof value){case'string':return quote(value);case'number':return isFinite(value)?String(value):'null';case'boolean':case'null':return String(value);case'object':if(!value){return'null';}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==='[object Array]'){length=value.length;for(i=0;i Date: Fri, 8 Jan 2010 13:26:48 +0000 Subject: Using json2.js --- lib/action.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/action.php b/lib/action.php index 715072d1e..1b4cb5cec 100644 --- a/lib/action.php +++ b/lib/action.php @@ -253,6 +253,7 @@ class Action extends HTMLOutputter // lawsuit $this->script('js/jquery.min.js'); $this->script('js/jquery.form.js'); $this->script('js/jquery.cookie.js'); + $this->script('js/json2.js'); $this->script('js/jquery.joverlay.min.js'); Event::handle('EndShowJQueryScripts', array($this)); } -- cgit v1.2.3-54-g00ecf From 647bbb916cf3d29949bffa57d2eda4375789e040 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 13:36:31 +0000 Subject: Updated RealtimePlugin to use core json2.js --- plugins/Realtime/RealtimePlugin.php | 3 +- plugins/Realtime/json2.js | 478 ------------------------------------ 2 files changed, 1 insertion(+), 480 deletions(-) delete mode 100644 plugins/Realtime/json2.js diff --git a/plugins/Realtime/RealtimePlugin.php b/plugins/Realtime/RealtimePlugin.php index a810b7165..21e465b53 100644 --- a/plugins/Realtime/RealtimePlugin.php +++ b/plugins/Realtime/RealtimePlugin.php @@ -310,8 +310,7 @@ class RealtimePlugin extends Plugin function _getScripts() { - return array('plugins/Realtime/realtimeupdate.js', - 'plugins/Realtime/json2.js'); + return array('plugins/Realtime/realtimeupdate.js'); } function _updateInitialize($timeline, $user_id) diff --git a/plugins/Realtime/json2.js b/plugins/Realtime/json2.js deleted file mode 100644 index 7e27df518..000000000 --- a/plugins/Realtime/json2.js +++ /dev/null @@ -1,478 +0,0 @@ -/* - http://www.JSON.org/json2.js - 2009-04-16 - - Public Domain. - - NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. - - See http://www.JSON.org/js.html - - This file creates a global JSON object containing two methods: stringify - and parse. - - JSON.stringify(value, replacer, space) - value any JavaScript value, usually an object or array. - - replacer an optional parameter that determines how object - values are stringified for objects. It can be a - function or an array of strings. - - space an optional parameter that specifies the indentation - of nested structures. If it is omitted, the text will - be packed without extra whitespace. If it is a number, - it will specify the number of spaces to indent at each - level. If it is a string (such as '\t' or ' '), - it contains the characters used to indent at each level. - - This method produces a JSON text from a JavaScript value. - - When an object value is found, if the object contains a toJSON - method, its toJSON method will be called and the result will be - stringified. A toJSON method does not serialize: it returns the - value represented by the name/value pair that should be serialized, - or undefined if nothing should be serialized. The toJSON method - will be passed the key associated with the value, and this will be - bound to the object holding the key. - - For example, this would serialize Dates as ISO strings. - - Date.prototype.toJSON = function (key) { - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - You can provide an optional replacer method. It will be passed the - key and value of each member, with this bound to the containing - object. The value that is returned from your method will be - serialized. If your method returns undefined, then the member will - be excluded from the serialization. - - If the replacer parameter is an array of strings, then it will be - used to select the members to be serialized. It filters the results - such that only members with keys listed in the replacer array are - stringified. - - Values that do not have JSON representations, such as undefined or - functions, will not be serialized. Such values in objects will be - dropped; in arrays they will be replaced with null. You can use - a replacer function to replace those with JSON values. - JSON.stringify(undefined) returns undefined. - - The optional space parameter produces a stringification of the - value that is filled with line breaks and indentation to make it - easier to read. - - If the space parameter is a non-empty string, then that string will - be used for indentation. If the space parameter is a number, then - the indentation will be that many spaces. - - Example: - - text = JSON.stringify(['e', {pluribus: 'unum'}]); - // text is '["e",{"pluribus":"unum"}]' - - - text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); - // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' - - text = JSON.stringify([new Date()], function (key, value) { - return this[key] instanceof Date ? - 'Date(' + this[key] + ')' : value; - }); - // text is '["Date(---current time---)"]' - - - JSON.parse(text, reviver) - This method parses a JSON text to produce an object or array. - It can throw a SyntaxError exception. - - The optional reviver parameter is a function that can filter and - transform the results. It receives each of the keys and values, - and its return value is used instead of the original value. - If it returns what it received, then the structure is not modified. - If it returns undefined then the member is deleted. - - Example: - - // Parse the text. Values that look like ISO date strings will - // be converted to Date objects. - - myData = JSON.parse(text, function (key, value) { - var a; - if (typeof value === 'string') { - a = -/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); - if (a) { - return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], - +a[5], +a[6])); - } - } - return value; - }); - - myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { - var d; - if (typeof value === 'string' && - value.slice(0, 5) === 'Date(' && - value.slice(-1) === ')') { - d = new Date(value.slice(5, -1)); - if (d) { - return d; - } - } - return value; - }); - - - This is a reference implementation. You are free to copy, modify, or - redistribute. - - This code should be minified before deployment. - See http://javascript.crockford.com/jsmin.html - - USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO - NOT CONTROL. -*/ - -/*jslint evil: true */ - -/*global JSON */ - -/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, - call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, - getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, - lastIndex, length, parse, prototype, push, replace, slice, stringify, - test, toJSON, toString, valueOf -*/ - -// Create a JSON object only if one does not already exist. We create the -// methods in a closure to avoid creating global variables. - -if (!this.JSON) { - JSON = {}; -} -(function () { - - function f(n) { - // Format integers to have at least two digits. - return n < 10 ? '0' + n : n; - } - - if (typeof Date.prototype.toJSON !== 'function') { - - Date.prototype.toJSON = function (key) { - - return this.getUTCFullYear() + '-' + - f(this.getUTCMonth() + 1) + '-' + - f(this.getUTCDate()) + 'T' + - f(this.getUTCHours()) + ':' + - f(this.getUTCMinutes()) + ':' + - f(this.getUTCSeconds()) + 'Z'; - }; - - String.prototype.toJSON = - Number.prototype.toJSON = - Boolean.prototype.toJSON = function (key) { - return this.valueOf(); - }; - } - - var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, - gap, - indent, - meta = { // table of character substitutions - '\b': '\\b', - '\t': '\\t', - '\n': '\\n', - '\f': '\\f', - '\r': '\\r', - '"' : '\\"', - '\\': '\\\\' - }, - rep; - - - function quote(string) { - -// If the string contains no control characters, no quote characters, and no -// backslash characters, then we can safely slap some quotes around it. -// Otherwise we must also replace the offending characters with safe escape -// sequences. - - escapable.lastIndex = 0; - return escapable.test(string) ? - '"' + string.replace(escapable, function (a) { - var c = meta[a]; - return typeof c === 'string' ? c : - '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }) + '"' : - '"' + string + '"'; - } - - - function str(key, holder) { - -// Produce a string from holder[key]. - - var i, // The loop counter. - k, // The member key. - v, // The member value. - length, - mind = gap, - partial, - value = holder[key]; - -// If the value has a toJSON method, call it to obtain a replacement value. - - if (value && typeof value === 'object' && - typeof value.toJSON === 'function') { - value = value.toJSON(key); - } - -// If we were called with a replacer function, then call the replacer to -// obtain a replacement value. - - if (typeof rep === 'function') { - value = rep.call(holder, key, value); - } - -// What happens next depends on the value's type. - - switch (typeof value) { - case 'string': - return quote(value); - - case 'number': - -// JSON numbers must be finite. Encode non-finite numbers as null. - - return isFinite(value) ? String(value) : 'null'; - - case 'boolean': - case 'null': - -// If the value is a boolean or null, convert it to a string. Note: -// typeof null does not produce 'null'. The case is included here in -// the remote chance that this gets fixed someday. - - return String(value); - -// If the type is 'object', we might be dealing with an object or an array or -// null. - - case 'object': - -// Due to a specification blunder in ECMAScript, typeof null is 'object', -// so watch out for that case. - - if (!value) { - return 'null'; - } - -// Make an array to hold the partial results of stringifying this object value. - - gap += indent; - partial = []; - -// Is the value an array? - - if (Object.prototype.toString.apply(value) === '[object Array]') { - -// The value is an array. Stringify every element. Use null as a placeholder -// for non-JSON values. - - length = value.length; - for (i = 0; i < length; i += 1) { - partial[i] = str(i, value) || 'null'; - } - -// Join all of the elements together, separated with commas, and wrap them in -// brackets. - - v = partial.length === 0 ? '[]' : - gap ? '[\n' + gap + - partial.join(',\n' + gap) + '\n' + - mind + ']' : - '[' + partial.join(',') + ']'; - gap = mind; - return v; - } - -// If the replacer is an array, use it to select the members to be stringified. - - if (rep && typeof rep === 'object') { - length = rep.length; - for (i = 0; i < length; i += 1) { - k = rep[i]; - if (typeof k === 'string') { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } else { - -// Otherwise, iterate through all of the keys in the object. - - for (k in value) { - if (Object.hasOwnProperty.call(value, k)) { - v = str(k, value); - if (v) { - partial.push(quote(k) + (gap ? ': ' : ':') + v); - } - } - } - } - -// Join all of the member texts together, separated with commas, -// and wrap them in braces. - - v = partial.length === 0 ? '{}' : - gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + - mind + '}' : '{' + partial.join(',') + '}'; - gap = mind; - return v; - } - } - -// If the JSON object does not yet have a stringify method, give it one. - - if (typeof JSON.stringify !== 'function') { - JSON.stringify = function (value, replacer, space) { - -// The stringify method takes a value and an optional replacer, and an optional -// space parameter, and returns a JSON text. The replacer can be a function -// that can replace values, or an array of strings that will select the keys. -// A default replacer method can be provided. Use of the space parameter can -// produce text that is more easily readable. - - var i; - gap = ''; - indent = ''; - -// If the space parameter is a number, make an indent string containing that -// many spaces. - - if (typeof space === 'number') { - for (i = 0; i < space; i += 1) { - indent += ' '; - } - -// If the space parameter is a string, it will be used as the indent string. - - } else if (typeof space === 'string') { - indent = space; - } - -// If there is a replacer, it must be a function or an array. -// Otherwise, throw an error. - - rep = replacer; - if (replacer && typeof replacer !== 'function' && - (typeof replacer !== 'object' || - typeof replacer.length !== 'number')) { - throw new Error('JSON.stringify'); - } - -// Make a fake root object containing our value under the key of ''. -// Return the result of stringifying the value. - - return str('', {'': value}); - }; - } - - -// If the JSON object does not yet have a parse method, give it one. - - if (typeof JSON.parse !== 'function') { - JSON.parse = function (text, reviver) { - -// The parse method takes a text and an optional reviver function, and returns -// a JavaScript value if the text is a valid JSON text. - - var j; - - function walk(holder, key) { - -// The walk method is used to recursively walk the resulting structure so -// that modifications can be made. - - var k, v, value = holder[key]; - if (value && typeof value === 'object') { - for (k in value) { - if (Object.hasOwnProperty.call(value, k)) { - v = walk(value, k); - if (v !== undefined) { - value[k] = v; - } else { - delete value[k]; - } - } - } - } - return reviver.call(holder, key, value); - } - - -// Parsing happens in four stages. In the first stage, we replace certain -// Unicode characters with escape sequences. JavaScript handles many characters -// incorrectly, either silently deleting them, or treating them as line endings. - - cx.lastIndex = 0; - if (cx.test(text)) { - text = text.replace(cx, function (a) { - return '\\u' + - ('0000' + a.charCodeAt(0).toString(16)).slice(-4); - }); - } - -// In the second stage, we run the text against regular expressions that look -// for non-JSON patterns. We are especially concerned with '()' and 'new' -// because they can cause invocation, and '=' because it can cause mutation. -// But just to be safe, we want to reject all unexpected forms. - -// We split the second stage into 4 regexp operations in order to work around -// crippling inefficiencies in IE's and Safari's regexp engines. First we -// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we -// replace all simple value tokens with ']' characters. Third, we delete all -// open brackets that follow a colon or comma or that begin the text. Finally, -// we look to see that the remaining characters are only whitespace or ']' or -// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval. - - if (/^[\],:{}\s]*$/. -test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@'). -replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']'). -replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) { - -// In the third stage we use the eval function to compile the text into a -// JavaScript structure. The '{' operator is subject to a syntactic ambiguity -// in JavaScript: it can begin a block or an object literal. We wrap the text -// in parens to eliminate the ambiguity. - - j = eval('(' + text + ')'); - -// In the optional fourth stage, we recursively walk the new structure, passing -// each name/value pair to a reviver function for possible transformation. - - return typeof reviver === 'function' ? - walk({'': j}, '') : j; - } - -// If the text is not JSON parseable, then a SyntaxError is thrown. - - throw new SyntaxError('JSON.parse'); - }; - } -}()); -- cgit v1.2.3-54-g00ecf From 69f567c7bed92cd0aaa32cb26a803499087c57f7 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 13:36:52 +0000 Subject: Using cookies to minimize lookups to Geonames --- js/util.js | 150 +++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 101 insertions(+), 49 deletions(-) diff --git a/js/util.js b/js/util.js index af6e0ff20..a29b158be 100644 --- a/js/util.js +++ b/js/util.js @@ -460,28 +460,34 @@ var SN = { // StatusNet var NLon = $('#'+SN.C.S.NoticeLon).val(); var NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); var NLID = $('#'+SN.C.S.NoticeLocationId).val(); + var NLN = $('#'+SN.C.S.NoticeLocationName).text(); + var NDGe = $('#'+SN.C.S.NoticeDataGeo); function removeNoticeDataGeo() { $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + $('#'+SN.C.S.NoticeLat).val(''); $('#'+SN.C.S.NoticeLon).val(''); $('#'+SN.C.S.NoticeLocationNs).val(''); $('#'+SN.C.S.NoticeLocationId).val(''); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); + + $.cookie(SN.C.S.NoticeLocationCookieName, 'disabled'); } function getJSONgeocodeURL(geocodeURL, data) { $.getJSON(geocodeURL, data, function(location) { - NLN = $('#'+SN.C.S.NoticeLocationName); - NLN.replaceWith(''); - NLN = $('#'+SN.C.S.NoticeLocationName); + var lns, lid; if (typeof(location.location_ns) != 'undefined') { $('#'+SN.C.S.NoticeLocationNs).val(location.location_ns); + lns = location.location_ns; } if (typeof(location.location_id) != 'undefined') { $('#'+SN.C.S.NoticeLocationId).val(location.location_id); + lid = location.location_id; } if (typeof(location.name) == 'undefined') { @@ -491,20 +497,45 @@ var SN = { // StatusNet NLN_text = location.name; } - NLN.attr('href', location.url); - NLN.text(NLN_text); - NLN.click(function() { - window.open(location.url); + $('#'+SN.C.S.NoticeLocationName) + .replaceWith(''); - return false; - }); + $('#'+SN.C.S.NoticeLocationName) + .attr('href', location.url) + .text(NLN_text) + .click(function() { + window.open(location.url); + + return false; + }); + + $('#'+SN.C.S.NoticeLat).val(data.lat); + $('#'+SN.C.S.NoticeLon).val(data.lon); + $('#'+SN.C.S.NoticeLocationNs).val(lns); + $('#'+SN.C.S.NoticeLocationId).val(lid); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', true); + + var cookieValue = { + 'NLat': data.lat, + 'NLon': data.lon, + 'NLNS': lns, + 'NLID': lid, + 'NLN': NLN_text, + 'NLNU': location.url, + 'NDG': true + }; + $.cookie(SN.C.S.NoticeLocationCookieName, JSON.stringify(cookieValue)); }); } - var NDG = $('#'+SN.C.S.NoticeDataGeo); - if (NDG.length > 0) { - var cookieVal = $.cookie(SN.C.S.NoticeLocationCookieName); - NDG.attr('checked', (cookieVal === null || cookieVal == 'true')); + if (NDGe.length > 0) { + var cookieValue = $.cookie(SN.C.S.NoticeLocationCookieName); + if (cookieValue == 'disabled') { + NDGe.attr('checked', false); + } + else { + NDGe.attr('checked', true); + } var NLE = $('#notice_data-location_wrap'); var geocodeURL = NLE.attr('title'); @@ -512,15 +543,13 @@ var SN = { // StatusNet $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', jQuery.trim($('label[for='+SN.C.S.NoticeDataGeo+']').text())); - NDG.change(function() { - $.cookie(SN.C.S.NoticeLocationCookieName, $('#'+SN.C.S.NoticeDataGeo).attr('checked')); - + NDGe.change(function() { var NLN = $('#'+SN.C.S.NoticeLocationName); if (NLN.length > 0) { NLN.remove(); } - if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true) { + if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true || $.cookie(SN.C.S.NoticeLocationCookieName) === null) { $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); var S = '
'; @@ -540,9 +569,9 @@ var SN = { // StatusNet NLN.addClass('processing'); $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ + removeNoticeDataGeo(); + $('#'+SN.C.S.NoticeDataGeoSelected).remove(); - $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); return false; }); @@ -553,43 +582,65 @@ var SN = { // StatusNet return false; }); - if (navigator.geolocation) { - navigator.geolocation.getCurrentPosition( - function(position) { - $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); - $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); - + if ($.cookie(SN.C.S.NoticeLocationCookieName) === null || $.cookie(SN.C.S.NoticeLocationCookieName) == 'disabled') { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + function(position) { + $('#'+SN.C.S.NoticeLat).val(position.coords.latitude); + $('#'+SN.C.S.NoticeLon).val(position.coords.longitude); + + var data = { + 'lat': position.coords.latitude, + 'lon': position.coords.longitude, + 'token': $('#token').val() + }; + + getJSONgeocodeURL(geocodeURL, data); + }, + + function(error) { + if (error.PERMISSION_DENIED == 1) { + removeNoticeDataGeo(); + } + } + ); + } + else { + if (NLat.length > 0 && NLon.length > 0) { var data = { - 'lat': position.coords.latitude, - 'lon': position.coords.longitude, + 'lat': NLat, + 'lon': NLon, 'token': $('#token').val() }; getJSONgeocodeURL(geocodeURL, data); - }, - - function(error) { - if (error.PERMISSION_DENIED == 1) { - removeNoticeDataGeo(); - } } - ); + else { + removeNoticeDataGeo(); + $('#'+SN.C.S.NoticeDataGeo).remove(); + $('label[for='+SN.C.S.NoticeDataGeo+']').remove(); + } + } } else { - if (NLat.length > 0 && NLon.length > 0) { - var data = { - 'lat': NLat, - 'lon': NLon, - 'token': $('#token').val() - }; - - getJSONgeocodeURL(geocodeURL, data); - } - else { - removeNoticeDataGeo(); - $('#'+SN.C.S.NoticeDataGeo).remove(); - $('label[for='+SN.C.S.NoticeDataGeo+']').remove(); - } + var cookieValue = JSON.parse($.cookie(SN.C.S.NoticeLocationCookieName)); + $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat); + $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon); + $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS); + $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', cookieValue.NDG); + + $('#'+SN.C.S.NoticeLocationName) + .replaceWith(''); + + $('#'+SN.C.S.NoticeLocationName) + .attr('href', cookieValue.NLNU) + .text(cookieValue.NLN) + .click(function() { + window.open($(this).attr('href')); + + return false; + }); } } else { @@ -631,13 +682,14 @@ var SN = { // StatusNet Init: { NoticeForm: function() { if ($('body.user_in').length > 0) { + SN.U.NoticeLocationAttach(); + $('.'+SN.C.S.FormNotice).each(function() { SN.U.FormNoticeXHR($(this)); SN.U.FormNoticeEnhancements($(this)); }); SN.U.NoticeDataAttach(); - SN.U.NoticeLocationAttach(); } }, -- cgit v1.2.3-54-g00ecf From 54c18e68dadc37174e8631db76dae064a88920a6 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 13:58:23 +0000 Subject: Some code cleaning for geo UI --- js/util.js | 42 ++++++++++++++++++++---------------------- lib/noticeform.php | 2 +- theme/base/css/display.css | 10 +++++----- theme/default/css/display.css | 6 +++--- theme/identica/css/display.css | 6 +++--- 5 files changed, 32 insertions(+), 34 deletions(-) diff --git a/js/util.js b/js/util.js index a29b158be..9c6342ffe 100644 --- a/js/util.js +++ b/js/util.js @@ -51,8 +51,7 @@ var SN = { // StatusNet NoticeLon: 'notice_data-lon', NoticeLocationId: 'notice_data-location_id', NoticeLocationNs: 'notice_data-location_ns', - NoticeLocationName: 'notice_data-location_name', - NoticeLocationCookieName: 'location_enabled', + NoticeGeoName: 'notice_data-geo_name', NoticeDataGeo: 'notice_data-geo', NoticeDataGeoSelected: 'notice_data-geo_selected' } @@ -460,7 +459,7 @@ var SN = { // StatusNet var NLon = $('#'+SN.C.S.NoticeLon).val(); var NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); var NLID = $('#'+SN.C.S.NoticeLocationId).val(); - var NLN = $('#'+SN.C.S.NoticeLocationName).text(); + var NLN = $('#'+SN.C.S.NoticeGeoName).text(); var NDGe = $('#'+SN.C.S.NoticeDataGeo); function removeNoticeDataGeo() { @@ -473,7 +472,7 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeLocationId).val(''); $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $.cookie(SN.C.S.NoticeLocationCookieName, 'disabled'); + $.cookie(SN.C.S.NoticeDataGeo, 'disabled'); } function getJSONgeocodeURL(geocodeURL, data) { @@ -497,10 +496,10 @@ var SN = { // StatusNet NLN_text = location.name; } - $('#'+SN.C.S.NoticeLocationName) - .replaceWith(''); + $('#'+SN.C.S.NoticeGeoName) + .replaceWith(''); - $('#'+SN.C.S.NoticeLocationName) + $('#'+SN.C.S.NoticeGeoName) .attr('href', location.url) .text(NLN_text) .click(function() { @@ -524,32 +523,31 @@ var SN = { // StatusNet 'NLNU': location.url, 'NDG': true }; - $.cookie(SN.C.S.NoticeLocationCookieName, JSON.stringify(cookieValue)); + $.cookie(SN.C.S.NoticeDataGeo, JSON.stringify(cookieValue)); }); } if (NDGe.length > 0) { - var cookieValue = $.cookie(SN.C.S.NoticeLocationCookieName); - if (cookieValue == 'disabled') { + if ($.cookie(SN.C.S.NoticeDataGeo) == 'disabled') { NDGe.attr('checked', false); } else { NDGe.attr('checked', true); } - var NLE = $('#notice_data-location_wrap'); - var geocodeURL = NLE.attr('title'); - NLE.removeAttr('title'); + var NGW = $('#notice_data-geo_wrap'); + var geocodeURL = NGW.attr('title'); + NGW.removeAttr('title'); $('label[for='+SN.C.S.NoticeDataGeo+']').attr('title', jQuery.trim($('label[for='+SN.C.S.NoticeDataGeo+']').text())); NDGe.change(function() { - var NLN = $('#'+SN.C.S.NoticeLocationName); + var NLN = $('#'+SN.C.S.NoticeGeoName); if (NLN.length > 0) { NLN.remove(); } - if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true || $.cookie(SN.C.S.NoticeLocationCookieName) === null) { + if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true || $.cookie(SN.C.S.NoticeDataGeo) === null) { $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); var S = '
'; @@ -563,9 +561,9 @@ var SN = { // StatusNet } NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); - NDGS.prepend('Geo '); + NDGS.prepend('Geo '); - var NLN = $('#'+SN.C.S.NoticeLocationName); + var NLN = $('#'+SN.C.S.NoticeGeoName); NLN.addClass('processing'); $('#'+SN.C.S.NoticeDataGeoSelected+' button.close').click(function(){ @@ -582,7 +580,7 @@ var SN = { // StatusNet return false; }); - if ($.cookie(SN.C.S.NoticeLocationCookieName) === null || $.cookie(SN.C.S.NoticeLocationCookieName) == 'disabled') { + if ($.cookie(SN.C.S.NoticeDataGeo) === null || $.cookie(SN.C.S.NoticeDataGeo) == 'disabled') { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function(position) { @@ -623,17 +621,17 @@ var SN = { // StatusNet } } else { - var cookieValue = JSON.parse($.cookie(SN.C.S.NoticeLocationCookieName)); + var cookieValue = JSON.parse($.cookie(SN.C.S.NoticeDataGeo)); $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat); $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon); $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS); $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID); $('#'+SN.C.S.NoticeDataGeo).attr('checked', cookieValue.NDG); - $('#'+SN.C.S.NoticeLocationName) - .replaceWith(''); + $('#'+SN.C.S.NoticeGeoName) + .replaceWith(''); - $('#'+SN.C.S.NoticeLocationName) + $('#'+SN.C.S.NoticeGeoName) .attr('href', cookieValue.NLNU) .text(cookieValue.NLN) .click(function() { diff --git a/lib/noticeform.php b/lib/noticeform.php index 99865645a..ddfe45055 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -207,7 +207,7 @@ class NoticeForm extends Form $this->out->hidden('notice_data-location_id', empty($this->location_id) ? (empty($this->profile->location_id) ? null : $this->profile->location_id) : $this->location_id, 'location_id'); $this->out->hidden('notice_data-location_ns', empty($this->location_ns) ? (empty($this->profile->location_ns) ? null : $this->profile->location_ns) : $this->location_ns, 'location_ns'); - $this->out->elementStart('div', array('id' => 'notice_data-location_wrap', + $this->out->elementStart('div', array('id' => 'notice_data-geo_wrap', 'title' => common_local_url('geocode'))); $this->out->checkbox('notice_data-geo', _('Share your location'), true); $this->out->elementEnd('div'); diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 2031aed21..cdacb9a62 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -555,7 +555,7 @@ margin-bottom:0; line-height:1.618; } .form_notice #notice_data-attach_selected code, -.form_notice #notice_data-location_name { +.form_notice #notice_data-geo_name { float:left; width:80%; display:block; @@ -575,7 +575,7 @@ font-size:0.8em; float:left; } -.form_notice #notice_data-location_wrap label { +.form_notice #notice_data-geo_wrap label { position:absolute; top:25px; right:4px; @@ -585,16 +585,16 @@ width:16px; height:16px; display:block; } -.form_notice #notice_data-location_wrap input { +.form_notice #notice_data-geo_wrap input { display:none; } -.form_notice #notice_data-location_wrap label { +.form_notice #notice_data-geo_wrap label { font-weight:normal; font-size:1em; margin-bottom:0; text-indent:-9999px; } -.form_notice #notice_data-location_name { +.form_notice #notice_data-geo_name { display:block; padding-left:21px; } diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 1fe2bd569..2360976e5 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -111,10 +111,10 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); text-shadow:none; } -.form_notice span#notice_data-location_name { +.form_notice span#notice_data-geo_name { background-position:0 47%; } -.form_notice a#notice_data-location_name { +.form_notice a#notice_data-geo_name { background-position:0 -1711px; } .form_notice label[for=notice_data-geo] { @@ -192,7 +192,7 @@ button.close, .entity_silence input.submit, .entity_delete input.submit, .notice-options .repeated, -.form_notice a#notice_data-location_name, +.form_notice a#notice_data-geo_name, .form_notice label[for=notice_data-geo], button.minimize { background-image:url(../../base/images/icons/icons-01.gif); diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index dd02de6b9..91af1d8ec 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -111,10 +111,10 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); text-shadow:none; } -.form_notice span#notice_data-location_name { +.form_notice span#notice_data-geo_name { background-position:0 47%; } -.form_notice a#notice_data-location_name { +.form_notice a#notice_data-geo_name { background-position:0 -1711px; } .form_notice label[for=notice_data-geo] { @@ -192,7 +192,7 @@ button.close, .entity_silence input.submit, .entity_delete input.submit, .notice-options .repeated, -.form_notice a#notice_data-location_name, +.form_notice a#notice_data-geo_name, .form_notice label[for=notice_data-geo], button.minimize { background-image:url(../../base/images/icons/icons-01.gif); -- cgit v1.2.3-54-g00ecf From 064f13f3ab55c1704abf45b2f70afb20c7f7cd24 Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 14:23:37 +0000 Subject: Stores geo view's minimized state in a cookie --- js/util.js | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/js/util.js b/js/util.js index 9c6342ffe..72750c027 100644 --- a/js/util.js +++ b/js/util.js @@ -521,7 +521,8 @@ var SN = { // StatusNet 'NLID': lid, 'NLN': NLN_text, 'NLNU': location.url, - 'NDG': true + 'NDG': true, + 'NDGSM': false }; $.cookie(SN.C.S.NoticeDataGeo, JSON.stringify(cookieValue)); }); @@ -577,6 +578,18 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeDataGeoSelected+' button.minimize').click(function(){ $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + var cookieValue = { + 'NLat': $('#'+SN.C.S.NoticeLat).val(), + 'NLon': $('#'+SN.C.S.NoticeLat).val(), + 'NLNS': $('#'+SN.C.S.NoticeLocationNs).val(), + 'NLID': $('#'+SN.C.S.NoticeLocationId).val(), + 'NLN': $('#'+SN.C.S.NoticeGeoName).text(), + 'NLNU': $('#'+SN.C.S.NoticeGeoName).attr('href'), + 'NDG': true, + 'NDGSM': true + }; + $.cookie(SN.C.S.NoticeDataGeo, JSON.stringify(cookieValue)); + return false; }); @@ -622,6 +635,11 @@ var SN = { // StatusNet } else { var cookieValue = JSON.parse($.cookie(SN.C.S.NoticeDataGeo)); + + if (cookieValue.NDGSM === true) { + $('#'+SN.C.S.NoticeDataGeoSelected).hide(); + } + $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat); $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon); $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS); -- cgit v1.2.3-54-g00ecf From 17913d44277c5fd2099709981abf7407e9fdd65b Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 16:43:03 +0000 Subject: Makes sure that if geo location sharing is disabled, it doesn't use the HTML output. If cookie is set, use those values for XHR notice post --- js/util.js | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/js/util.js b/js/util.js index 72750c027..98718e73f 100644 --- a/js/util.js +++ b/js/util.js @@ -53,6 +53,7 @@ var SN = { // StatusNet NoticeLocationNs: 'notice_data-location_ns', NoticeGeoName: 'notice_data-geo_name', NoticeDataGeo: 'notice_data-geo', + NoticeDataGeoCookie: 'notice_data-geo_cookie', NoticeDataGeoSelected: 'notice_data-geo_selected' } }, @@ -192,11 +193,27 @@ var SN = { // StatusNet $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).addClass(SN.C.S.Disabled); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).attr(SN.C.S.Disabled, SN.C.S.Disabled); - NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); NLat = $('#'+SN.C.S.NoticeLat).val(); NLon = $('#'+SN.C.S.NoticeLon).val(); NLNS = $('#'+SN.C.S.NoticeLocationNs).val(); NLID = $('#'+SN.C.S.NoticeLocationId).val(); + NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked'); + + cookieValue = $.cookie(SN.C.S.NoticeDataGeoCookie); + + if (cookieValue !== null && cookieValue != 'disabled') { + cookieValue = JSON.parse(cookieValue); + NLat = $('#'+SN.C.S.NoticeLat).val(cookieValue.NLat).val(); + NLon = $('#'+SN.C.S.NoticeLon).val(cookieValue.NLon).val(); + NLNS = $('#'+SN.C.S.NoticeLocationNs).val(cookieValue.NLNS).val(); + NLID = $('#'+SN.C.S.NoticeLocationId).val(cookieValue.NLID).val(); + } + if (cookieValue == 'disabled') { + NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', false).attr('checked'); + } + else { + NDG = $('#'+SN.C.S.NoticeDataGeo).attr('checked', true).attr('checked'); + } return true; }, @@ -281,11 +298,11 @@ var SN = { // StatusNet $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeAttr(SN.C.S.Disabled); $('#'+form_id+' #'+SN.C.S.NoticeActionSubmit).removeClass(SN.C.S.Disabled); - $('#'+SN.C.S.NoticeDataGeo).attr('checked', NDG); $('#'+SN.C.S.NoticeLat).val(NLat); $('#'+SN.C.S.NoticeLon).val(NLon); $('#'+SN.C.S.NoticeLocationNs).val(NLNS); $('#'+SN.C.S.NoticeLocationId).val(NLID); + $('#'+SN.C.S.NoticeDataGeo).attr('checked', NDG); } }); }, @@ -472,7 +489,7 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeLocationId).val(''); $('#'+SN.C.S.NoticeDataGeo).attr('checked', false); - $.cookie(SN.C.S.NoticeDataGeo, 'disabled'); + $.cookie(SN.C.S.NoticeDataGeoCookie, 'disabled'); } function getJSONgeocodeURL(geocodeURL, data) { @@ -524,12 +541,12 @@ var SN = { // StatusNet 'NDG': true, 'NDGSM': false }; - $.cookie(SN.C.S.NoticeDataGeo, JSON.stringify(cookieValue)); + $.cookie(SN.C.S.NoticeDataGeoCookie, JSON.stringify(cookieValue)); }); } if (NDGe.length > 0) { - if ($.cookie(SN.C.S.NoticeDataGeo) == 'disabled') { + if ($.cookie(SN.C.S.NoticeDataGeoCookie) == 'disabled') { NDGe.attr('checked', false); } else { @@ -548,7 +565,7 @@ var SN = { // StatusNet NLN.remove(); } - if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true || $.cookie(SN.C.S.NoticeDataGeo) === null) { + if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true || $.cookie(SN.C.S.NoticeDataGeoCookie) === null) { $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); var S = '
'; @@ -588,12 +605,12 @@ var SN = { // StatusNet 'NDG': true, 'NDGSM': true }; - $.cookie(SN.C.S.NoticeDataGeo, JSON.stringify(cookieValue)); + $.cookie(SN.C.S.NoticeDataGeoCookie, JSON.stringify(cookieValue)); return false; }); - if ($.cookie(SN.C.S.NoticeDataGeo) === null || $.cookie(SN.C.S.NoticeDataGeo) == 'disabled') { + if ($.cookie(SN.C.S.NoticeDataGeoCookie) === null || $.cookie(SN.C.S.NoticeDataGeoCookie) == 'disabled') { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function(position) { @@ -634,7 +651,7 @@ var SN = { // StatusNet } } else { - var cookieValue = JSON.parse($.cookie(SN.C.S.NoticeDataGeo)); + var cookieValue = JSON.parse($.cookie(SN.C.S.NoticeDataGeoCookie)); if (cookieValue.NDGSM === true) { $('#'+SN.C.S.NoticeDataGeoSelected).hide(); -- cgit v1.2.3-54-g00ecf From febe64625e1f5f771715a024e267db42d11a5d5e Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 16:51:18 +0000 Subject: Focus on the notice textarea after share, minimize, close button actions --- js/util.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/js/util.js b/js/util.js index 98718e73f..4e588a3b6 100644 --- a/js/util.js +++ b/js/util.js @@ -589,6 +589,8 @@ var SN = { // StatusNet $('#'+SN.C.S.NoticeDataGeoSelected).remove(); + $('#'+SN.C.S.NoticeDataText).focus(); + return false; }); @@ -607,6 +609,8 @@ var SN = { // StatusNet }; $.cookie(SN.C.S.NoticeDataGeoCookie, JSON.stringify(cookieValue)); + $('#'+SN.C.S.NoticeDataText).focus(); + return false; }); @@ -679,6 +683,8 @@ var SN = { // StatusNet else { removeNoticeDataGeo(); } + + $('#'+SN.C.S.NoticeDataText).focus(); }).change(); } }, -- cgit v1.2.3-54-g00ecf From 8901e01692e6010a371a4aa2e5a9b3649e0bcc2f Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 8 Jan 2010 18:07:02 +0000 Subject: Added i18n text for @title values in geo sharing actions --- js/util.js | 6 +++--- lib/noticeform.php | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/js/util.js b/js/util.js index 4e588a3b6..0314668d9 100644 --- a/js/util.js +++ b/js/util.js @@ -480,7 +480,7 @@ var SN = { // StatusNet var NDGe = $('#'+SN.C.S.NoticeDataGeo); function removeNoticeDataGeo() { - $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked'); + $('label[for='+SN.C.S.NoticeDataGeo+']').removeClass('checked').attr('title', jQuery.trim($('label[for='+SN.C.S.NoticeDataGeo+']').text())); $('#'+SN.C.S.NoticeDataGeoSelected).hide(); $('#'+SN.C.S.NoticeLat).val(''); @@ -566,7 +566,7 @@ var SN = { // StatusNet } if ($('#'+SN.C.S.NoticeDataGeo).attr('checked') === true || $.cookie(SN.C.S.NoticeDataGeoCookie) === null) { - $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked'); + $('label[for='+SN.C.S.NoticeDataGeo+']').addClass('checked').attr('title', NoticeDataGeoShareDisable_text); var S = '
'; var NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); @@ -579,7 +579,7 @@ var SN = { // StatusNet } NDGS = $('#'+SN.C.S.NoticeDataGeoSelected); - NDGS.prepend('Geo '); + NDGS.prepend('Geo '); var NLN = $('#'+SN.C.S.NoticeGeoName); NLN.addClass('processing'); diff --git a/lib/noticeform.php b/lib/noticeform.php index ddfe45055..f0b704e87 100644 --- a/lib/noticeform.php +++ b/lib/noticeform.php @@ -209,8 +209,10 @@ class NoticeForm extends Form $this->out->elementStart('div', array('id' => 'notice_data-geo_wrap', 'title' => common_local_url('geocode'))); - $this->out->checkbox('notice_data-geo', _('Share your location'), true); + $this->out->checkbox('notice_data-geo', _('Share my location'), true); $this->out->elementEnd('div'); + $this->out->inlineScript(' var NoticeDataGeoShareDisable_text = "'._('Do not share my location.').'";'. + ' var NoticeDataGeoInfoMinimize_text = "'._('Hide this info').'";'); } Event::handle('EndShowNoticeFormData', array($this)); -- cgit v1.2.3-54-g00ecf From e22af049a8df3e120ea88387d013dedec8554c43 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Fri, 8 Jan 2010 13:21:29 -0800 Subject: persistent connection flag, default false on cli --- plugins/MemcachePlugin.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/MemcachePlugin.php b/plugins/MemcachePlugin.php index b714fb25f..5f93e9a83 100644 --- a/plugins/MemcachePlugin.php +++ b/plugins/MemcachePlugin.php @@ -57,6 +57,8 @@ class MemcachePlugin extends Plugin public $compressThreshold = 20480; public $compressMinSaving = 0.2; + public $persistent = null; + /** * Initialize the plugin * @@ -67,6 +69,9 @@ class MemcachePlugin extends Plugin function onInitializePlugin() { + if (is_null($this->persistent)) { + $this->persistent = (php_sapi_name() == 'cli') ? false : true; + } $this->_ensureConn(); return true; } @@ -149,15 +154,15 @@ class MemcachePlugin extends Plugin $port = 11211; } - $this->_conn->addServer($host, $port); + $this->_conn->addServer($host, $port, $this->persistent); } } else { - $this->_conn->addServer($this->servers); + $this->_conn->addServer($this->servers, $this->persistent); list($host, $port) = explode(';', $this->servers); if (empty($port)) { $port = 11211; } - $this->_conn->addServer($host, $port); + $this->_conn->addServer($host, $port, $this->persistent); } // Compress items stored in the cache if they're over threshold in size -- cgit v1.2.3-54-g00ecf From 055f3fdddb998bfee1a6f6e61d1ca6df4b2fb740 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 8 Jan 2010 18:52:09 -0500 Subject: Add an IMAP daemon so StatusNet can process incoming user posts via catch-all mailbox (in addition to the pre-existing script alias method) --- lib/mailhandler.php | 275 ++++++++++++++++++++++++++++++++++++++++++++ plugins/Imap/ImapPlugin.php | 85 ++++++++++++++ plugins/Imap/README | 32 ++++++ plugins/Imap/imapdaemon.php | 147 +++++++++++++++++++++++ scripts/maildaemon.php | 263 +----------------------------------------- 5 files changed, 542 insertions(+), 260 deletions(-) create mode 100644 lib/mailhandler.php create mode 100644 plugins/Imap/ImapPlugin.php create mode 100644 plugins/Imap/README create mode 100755 plugins/Imap/imapdaemon.php diff --git a/lib/mailhandler.php b/lib/mailhandler.php new file mode 100644 index 000000000..32a8cd9bc --- /dev/null +++ b/lib/mailhandler.php @@ -0,0 +1,275 @@ +. + */ + +require_once(INSTALLDIR . '/lib/mail.php'); +require_once(INSTALLDIR . '/lib/mediafile.php'); +require_once('Mail/mimeDecode.php'); + +# FIXME: we use both Mail_mimeDecode and mailparse +# Need to move everything to mailparse + +class MailHandler +{ + function __construct() + { + } + + function handle_message($rawmessage) + { + list($from, $to, $msg, $attachments) = $this->parse_message($rawmessage); + if (!$from || !$to || !$msg) { + $this->error(null, _('Could not parse message.')); + } + common_log(LOG_INFO, "Mail from $from to $to with ".count($attachments) .' attachment(s): ' .substr($msg, 0, 20)); + $user = $this->user_from_header($from); + if (!$user) { + $this->error($from, _('Not a registered user.')); + return false; + } + if (!$this->user_match_to($user, $to)) { + $this->error($from, _('Sorry, that is not your incoming email address.')); + return false; + } + if (!$user->emailpost) { + $this->error($from, _('Sorry, no incoming email allowed.')); + return false; + } + $response = $this->handle_command($user, $from, $msg); + if ($response) { + return true; + } + $msg = $this->cleanup_msg($msg); + $msg = common_shorten_links($msg); + if (Notice::contentTooLong($msg)) { + $this->error($from, sprintf(_('That\'s too long. '. + 'Max notice size is %d chars.'), + Notice::maxContent())); + } + + $mediafiles = array(); + + foreach($attachments as $attachment){ + + $mf = null; + + try { + $mf = MediaFile::fromFileHandle($attachment, $user); + } catch(ClientException $ce) { + $this->error($from, $ce->getMessage()); + } + + $msg .= ' ' . $mf->shortUrl(); + + array_push($mediafiles, $mf); + fclose($attachment); + } + + $err = $this->add_notice($user, $msg, $mediafiles); + + if (is_string($err)) { + $this->error($from, $err); + return false; + } else { + return true; + } + } + + function error($from, $msg) + { + file_put_contents("php://stderr", $msg . "\n"); + exit(1); + } + + function user_from_header($from_hdr) + { + $froms = mailparse_rfc822_parse_addresses($from_hdr); + if (!$froms) { + return null; + } + $from = $froms[0]; + $addr = common_canonical_email($from['address']); + $user = User::staticGet('email', $addr); + if (!$user) { + $user = User::staticGet('smsemail', $addr); + } + return $user; + } + + function user_match_to($user, $to_hdr) + { + $incoming = $user->incomingemail; + $tos = mailparse_rfc822_parse_addresses($to_hdr); + foreach ($tos as $to) { + if (strcasecmp($incoming, $to['address']) == 0) { + return true; + } + } + return false; + } + + function handle_command($user, $from, $msg) + { + $inter = new CommandInterpreter(); + $cmd = $inter->handle_command($user, $msg); + if ($cmd) { + $cmd->execute(new MailChannel($from)); + return true; + } + return false; + } + + function respond($from, $to, $response) + { + + $headers['From'] = $to; + $headers['To'] = $from; + $headers['Subject'] = "Command complete"; + + return mail_send(array($from), $headers, $response); + } + + function log($level, $msg) + { + common_log($level, 'MailDaemon: '.$msg); + } + + function add_notice($user, $msg, $mediafiles) + { + try { + $notice = Notice::saveNew($user->id, $msg, 'mail'); + } catch (Exception $e) { + $this->log(LOG_ERR, $e->getMessage()); + return $e->getMessage(); + } + foreach($mediafiles as $mf){ + $mf->attachToNotice($notice); + } + common_broadcast_notice($notice); + $this->log(LOG_INFO, + 'Added notice ' . $notice->id . ' from user ' . $user->nickname); + return true; + } + + function parse_message($contents) + { + $parsed = Mail_mimeDecode::decode(array('input' => $contents, + 'include_bodies' => true, + 'decode_headers' => true, + 'decode_bodies' => true)); + if (!$parsed) { + return null; + } + + $from = $parsed->headers['from']; + + $to = $parsed->headers['to']; + + $type = $parsed->ctype_primary . '/' . $parsed->ctype_secondary; + + $attachments = array(); + + $this->extract_part($parsed,$msg,$attachments); + + return array($from, $to, $msg, $attachments); + } + + function extract_part($parsed,&$msg,&$attachments){ + if ($parsed->ctype_primary == 'multipart') { + if($parsed->ctype_secondary == 'alternative'){ + $altmsg = $this->extract_msg_from_multipart_alternative_part($parsed); + if(!empty($altmsg)) $msg = $altmsg; + }else{ + foreach($parsed->parts as $part){ + $this->extract_part($part,$msg,$attachments); + } + } + } else if ($parsed->ctype_primary == 'text' + && $parsed->ctype_secondary=='plain') { + $msg = $parsed->body; + if(strtolower($parsed->ctype_parameters['charset']) != "utf-8"){ + $msg = utf8_encode($msg); + } + }else if(!empty($parsed->body)){ + if(common_config('attachments', 'uploads')){ + //only save attachments if uploads are enabled + $attachment = tmpfile(); + fwrite($attachment, $parsed->body); + $attachments[] = $attachment; + } + } + } + + function extract_msg_from_multipart_alternative_part($parsed){ + foreach ($parsed->parts as $part) { + $this->extract_part($part,$msg,$attachments); + } + //we don't want any attachments that are a result of this parsing + return $msg; + } + + function unsupported_type($type) + { + $this->error(null, "Unsupported message type: " . $type); + } + + function cleanup_msg($msg) + { + $lines = explode("\n", $msg); + + $output = ''; + + foreach ($lines as $line) { + // skip quotes + if (preg_match('/^\s*>.*$/', $line)) { + continue; + } + // skip start of quote + if (preg_match('/^\s*On.*wrote:\s*$/', $line)) { + continue; + } + // probably interesting to someone, not us + if (preg_match('/^\s*Sent via/', $line)) { + continue; + } + if (preg_match('/^\s*Sent from my/', $line)) { + continue; + } + + // skip everything after a sig + if (preg_match('/^\s*--+\s*$/', $line) || + preg_match('/^\s*__+\s*$/', $line)) + { + break; + } + // skip everything after Outlook quote + if (preg_match('/^\s*-+\s*Original Message\s*-+\s*$/', $line)) { + break; + } + // skip everything after weird forward + if (preg_match('/^\s*Begin\s+forward/', $line)) { + break; + } + + $output .= ' ' . $line; + } + + preg_replace('/\s+/', ' ', $output); + return trim($output); + } +} diff --git a/plugins/Imap/ImapPlugin.php b/plugins/Imap/ImapPlugin.php new file mode 100644 index 000000000..034444222 --- /dev/null +++ b/plugins/Imap/ImapPlugin.php @@ -0,0 +1,85 @@ +. + * + * @category Plugin + * @package StatusNet + * @author Zach Copley + * @copyright 2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * IMAP plugin to allow StatusNet to grab incoming emails and handle them as new user posts + * + * @category Plugin + * @package StatusNet + * @author Craig Andrews mailbox)){ + throw new Exception("must specify a mailbox"); + } + if(!isset($this->user)){ + throw new Exception("must specify a user"); + } + if(!isset($this->password)){ + throw new Exception("must specify a password"); + } + if(!isset($this->poll_frequency)){ + throw new Exception("must specify a poll_frequency"); + } + + self::$instances[] = $this; + return true; + } + + function cleanup(){ + $index = array_search($this, self::$instances); + unset(self::$instances[$index]); + return true; + } + + function onGetValidDaemons($daemons) + { + if(! self::$daemon_added){ + array_push($daemons, INSTALLDIR . + '/plugins/Imap/imapdaemon.php'); + self::$daemon_added = true; + } + return true; + } +} diff --git a/plugins/Imap/README b/plugins/Imap/README new file mode 100644 index 000000000..640a411a8 --- /dev/null +++ b/plugins/Imap/README @@ -0,0 +1,32 @@ +The IMAP plugin allows for StatusNet to check a POP or IMAP mailbox for +incoming mail containing user posts. + +Installation +============ +addPlugin('imap', array( + 'mailbox' => '...', + 'user' => '...', + 'password' => '...' +)); +to the bottom of your config.php + +Also, make sure: +$config['mail']['domain'] = 'yourdomain.example.net'; +is set in your config.php + +Create a catch-all account for your domain, and use this account with this +plugin. Whenever a user sends a message to their personal notice posting +address, the message should end up in this mailbox, and then the plugin daemon +will pick it up and post the notice on the user's behalf. + +The daemon included with this plugin must be running. It will be started by +the plugin along with their other daemons when you run scripts/startdaemons.sh. +See the StatusNet README for more about queuing and daemons. + +Settings +======== +mailbox*: the mailbox specifier. + See http://www.php.net/manual/en/function.imap-open.php for details +user*: username to use when authenticating to the mailbox +password*: password to use when authenticating to the mailbox +poll_frequency: how often (in seconds) to check for new messages diff --git a/plugins/Imap/imapdaemon.php b/plugins/Imap/imapdaemon.php new file mode 100755 index 000000000..a45c603ce --- /dev/null +++ b/plugins/Imap/imapdaemon.php @@ -0,0 +1,147 @@ +#!/usr/bin/env php +. + */ + +define('INSTALLDIR', realpath(dirname(__FILE__) . '/../..')); + +$shortoptions = 'fi::'; +$longoptions = array('id::', 'foreground'); + +$helptext = <<$value) + { + $this->$attr = $value; + } + + $this->log(LOG_INFO, "INITIALIZE IMAPDaemon {" . $this->name() . "}"); + } + + function name() + { + return strtolower('imapdaemon.'.$this->user.'.'.crc32($this->mailbox)); + } + + function run() + { + $this->connect(); + while(true) + { + if(imap_ping($this->conn) || $this->connect()) + { + $this->check_mailbox(); + } + sleep($this->poll_frequency); + } + } + + function check_mailbox() + { + $count = imap_num_msg($this->conn); + $this->log(LOG_INFO, "Found $count messages"); + if($count > 0){ + $handler = new IMAPMailHandler(); + for($i=1; $i <= $count; $i++) + { + $rawmessage = imap_fetchheader($this->conn, $count, FT_PREFETCHTEXT) . imap_body($this->conn, $i); + $handler->handle_message($rawmessage); + imap_delete($this->conn, $i); + } + imap_expunge($this->conn); + $this->log(LOG_INFO, "Finished processing messages"); + } + } + + function log($level, $msg) + { + $text = $this->name() . ': '.$msg; + common_log($level, $text); + if (!$this->daemonize) + { + $line = common_log_line($level, $text); + echo $line; + echo "\n"; + } + } + + function connect() + { + $this->conn = imap_open($this->mailbox, $this->user, $this->password); + if($this->conn){ + $this->log(LOG_INFO, "Connected"); + return true; + }else{ + $this->log(LOG_INFO, "Failed to connect: " . imap_last_error()); + return false; + } + } +} + +class IMAPMailHandler extends MailHandler +{ + function error($from, $msg) + { + $this->log(LOG_INFO, "Error: $from $msg"); + $headers['To'] = $from; + $headers['Subject'] = "Error"; + + return mail_send(array($from), $headers, $msg); + } +} + +if (have_option('i', 'id')) { + $id = get_option_value('i', 'id'); +} else if (count($args) > 0) { + $id = $args[0]; +} else { + $id = null; +} + +$foreground = have_option('f', 'foreground'); + +foreach(ImapPlugin::$instances as $pluginInstance){ + + $daemon = new IMAPDaemon($id, !$foreground, array( + 'mailbox' => $pluginInstance->mailbox, + 'user' => $pluginInstance->user, + 'password' => $pluginInstance->password, + 'poll_frequency' => $pluginInstance->poll_frequency + )); + + $daemon->runOnce(); + +} diff --git a/scripts/maildaemon.php b/scripts/maildaemon.php index b4e4d9f08..3b1ef96a1 100755 --- a/scripts/maildaemon.php +++ b/scripts/maildaemon.php @@ -27,266 +27,9 @@ as STDIN. END_OF_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; - -require_once(INSTALLDIR . '/lib/mail.php'); -require_once(INSTALLDIR . '/lib/mediafile.php'); -require_once('Mail/mimeDecode.php'); - -# FIXME: we use both Mail_mimeDecode and mailparse -# Need to move everything to mailparse - -class MailerDaemon -{ - function __construct() - { - } - - function handle_message($fname='php://stdin') - { - list($from, $to, $msg, $attachments) = $this->parse_message($fname); - if (!$from || !$to || !$msg) { - $this->error(null, _('Could not parse message.')); - } - common_log(LOG_INFO, "Mail from $from to $to with ".count($attachments) .' attachment(s): ' .substr($msg, 0, 20)); - $user = $this->user_from($from); - if (!$user) { - $this->error($from, _('Not a registered user.')); - return false; - } - if (!$this->user_match_to($user, $to)) { - $this->error($from, _('Sorry, that is not your incoming email address.')); - return false; - } - if (!$user->emailpost) { - $this->error($from, _('Sorry, no incoming email allowed.')); - return false; - } - $response = $this->handle_command($user, $from, $msg); - if ($response) { - return true; - } - $msg = $this->cleanup_msg($msg); - $msg = common_shorten_links($msg); - if (Notice::contentTooLong($msg)) { - $this->error($from, sprintf(_('That\'s too long. '. - 'Max notice size is %d chars.'), - Notice::maxContent())); - } - - $mediafiles = array(); - - foreach($attachments as $attachment){ - - $mf = null; - - try { - $mf = MediaFile::fromFileHandle($attachment, $user); - } catch(ClientException $ce) { - $this->error($from, $ce->getMessage()); - } - - $msg .= ' ' . $mf->shortUrl(); - - array_push($mediafiles, $mf); - fclose($attachment); - } - - $err = $this->add_notice($user, $msg, $mediafiles); - - if (is_string($err)) { - $this->error($from, $err); - return false; - } else { - return true; - } - } - - function error($from, $msg) - { - file_put_contents("php://stderr", $msg . "\n"); - exit(1); - } - - function user_from($from_hdr) - { - $froms = mailparse_rfc822_parse_addresses($from_hdr); - if (!$froms) { - return null; - } - $from = $froms[0]; - $addr = common_canonical_email($from['address']); - $user = User::staticGet('email', $addr); - if (!$user) { - $user = User::staticGet('smsemail', $addr); - } - return $user; - } - - function user_match_to($user, $to_hdr) - { - $incoming = $user->incomingemail; - $tos = mailparse_rfc822_parse_addresses($to_hdr); - foreach ($tos as $to) { - if (strcasecmp($incoming, $to['address']) == 0) { - return true; - } - } - return false; - } - - function handle_command($user, $from, $msg) - { - $inter = new CommandInterpreter(); - $cmd = $inter->handle_command($user, $msg); - if ($cmd) { - $cmd->execute(new MailChannel($from)); - return true; - } - return false; - } - - function respond($from, $to, $response) - { - - $headers['From'] = $to; - $headers['To'] = $from; - $headers['Subject'] = "Command complete"; - - return mail_send(array($from), $headers, $response); - } - - function log($level, $msg) - { - common_log($level, 'MailDaemon: '.$msg); - } - - function add_notice($user, $msg, $mediafiles) - { - try { - $notice = Notice::saveNew($user->id, $msg, 'mail'); - } catch (Exception $e) { - $this->log(LOG_ERR, $e->getMessage()); - return $e->getMessage(); - } - foreach($mediafiles as $mf){ - $mf->attachToNotice($notice); - } - common_broadcast_notice($notice); - $this->log(LOG_INFO, - 'Added notice ' . $notice->id . ' from user ' . $user->nickname); - return true; - } - - function parse_message($fname) - { - $contents = file_get_contents($fname); - $parsed = Mail_mimeDecode::decode(array('input' => $contents, - 'include_bodies' => true, - 'decode_headers' => true, - 'decode_bodies' => true)); - if (!$parsed) { - return null; - } - - $from = $parsed->headers['from']; - - $to = $parsed->headers['to']; - - $type = $parsed->ctype_primary . '/' . $parsed->ctype_secondary; - - $attachments = array(); - - $this->extract_part($parsed,$msg,$attachments); - - return array($from, $to, $msg, $attachments); - } - - function extract_part($parsed,&$msg,&$attachments){ - if ($parsed->ctype_primary == 'multipart') { - if($parsed->ctype_secondary == 'alternative'){ - $altmsg = $this->extract_msg_from_multipart_alternative_part($parsed); - if(!empty($altmsg)) $msg = $altmsg; - }else{ - foreach($parsed->parts as $part){ - $this->extract_part($part,$msg,$attachments); - } - } - } else if ($parsed->ctype_primary == 'text' - && $parsed->ctype_secondary=='plain') { - $msg = $parsed->body; - if(strtolower($parsed->ctype_parameters['charset']) != "utf-8"){ - $msg = utf8_encode($msg); - } - }else if(!empty($parsed->body)){ - if(common_config('attachments', 'uploads')){ - //only save attachments if uploads are enabled - $attachment = tmpfile(); - fwrite($attachment, $parsed->body); - $attachments[] = $attachment; - } - } - } - - function extract_msg_from_multipart_alternative_part($parsed){ - foreach ($parsed->parts as $part) { - $this->extract_part($part,$msg,$attachments); - } - //we don't want any attachments that are a result of this parsing - return $msg; - } - - function unsupported_type($type) - { - $this->error(null, "Unsupported message type: " . $type); - } - - function cleanup_msg($msg) - { - $lines = explode("\n", $msg); - - $output = ''; - - foreach ($lines as $line) { - // skip quotes - if (preg_match('/^\s*>.*$/', $line)) { - continue; - } - // skip start of quote - if (preg_match('/^\s*On.*wrote:\s*$/', $line)) { - continue; - } - // probably interesting to someone, not us - if (preg_match('/^\s*Sent via/', $line)) { - continue; - } - if (preg_match('/^\s*Sent from my/', $line)) { - continue; - } - - // skip everything after a sig - if (preg_match('/^\s*--+\s*$/', $line) || - preg_match('/^\s*__+\s*$/', $line)) - { - break; - } - // skip everything after Outlook quote - if (preg_match('/^\s*-+\s*Original Message\s*-+\s*$/', $line)) { - break; - } - // skip everything after weird forward - if (preg_match('/^\s*Begin\s+forward/', $line)) { - break; - } - - $output .= ' ' . $line; - } - - preg_replace('/\s+/', ' ', $output); - return trim($output); - } -} +require_once INSTALLDIR.'/lib/mailhandler.php'; if (common_config('emailpost', 'enabled')) { - $md = new MailerDaemon(); - $md->handle_message('php://stdin'); + $mh = new MailHandler(); + $mh->handle_message(file_get_contents('php://stdin')); } -- cgit v1.2.3-54-g00ecf From f396701b6466749c09ce16b1e7f2f96c10b05cdd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Sat, 9 Jan 2010 13:33:13 +0100 Subject: Updated Cloudy theme for geo --- theme/cloudy/css/display.css | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index 6986222bb..726062e47 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -549,7 +549,7 @@ margin-bottom:0; line-height:1.618; } .form_notice #notice_data-attach_selected code, -.form_notice #notice_data-location_name { +.form_notice #notice_data-geo_name { float:left; width:80%; display:block; @@ -569,7 +569,7 @@ font-size:0.8em; float:left; } -.form_notice #notice_data-location_wrap label { +.form_notice #notice_data-geo_wrap label { position:absolute; top:25px; right:4px; @@ -579,20 +579,19 @@ width:16px; height:16px; display:block; } -.form_notice #notice_data-location_wrap input { +.form_notice #notice_data-geo_wrap input { display:none; } -.form_notice #notice_data-location_wrap label { +.form_notice #notice_data-geo_wrap label { font-weight:normal; font-size:1em; margin-bottom:0; text-indent:-9999px; } -.form_notice #notice_data-location_name { +.form_notice #notice_data-geo_name { display:block; padding-left:21px; } - button.close, button.minimize { width:16px; @@ -1635,7 +1634,7 @@ button.close, .entity_silence input.submit, .entity_delete input.submit, .notice-options .repeated, -.form_notice a#notice_data-location_name, +.form_notice a#notice_data-geo_name, .form_notice label[for=notice_data-geo], button.minimize { background-image:url(../../base/images/icons/icons-01.gif); @@ -1731,10 +1730,10 @@ box-shadow:3px 3px 3px rgba(194, 194, 194, 0.1); text-shadow:none; } -.form_notice span#notice_data-location_name { +.form_notice span#notice_data-geo_name { background-position:0 47%; } -.form_notice a#notice_data-location_name { +.form_notice a#notice_data-geo_name { background-position:0 -1711px; } .form_notice label[for=notice_data-geo] { -- cgit v1.2.3-54-g00ecf